Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1386 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Interface GTK2 - Fonction zoom sur liste

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interface GTK2 - Fonction zoom sur liste

n°1630195
tiblond
Posté le 24-10-2007 à 14:33:15  profilanswer
 

Bonjour amis programmeurs,
 
Je developpe une interface en perl Gtk2 qui contient une Gtk2::SimpleList avec different champ du type:
 
 $listTrame = Gtk2::SimpleList->new (
   'Numero'    => 'int',
   'Source'    => 'text',
   'Trame'    => 'text',
   'row color'     => 'color',
 );
 
 
La question est la suivante:
 
Comment fait-on pour agrandir la taille des caractères des valeurs de cette liste une fois affichée? Je suis sûr qu'il existe une proprieté concernant ce widget quelque part mais je n'ai pas trouvé laquelle.
 
Pour vous donnez un exemple, Ethereal (logiciel de capture réseau) réalise cette fonction pour zoomer plus ou moins sur la taille des trames réseaux capturées...Ou bien comme dans le navigateur de fichier sous Ubuntu ( un zoom en pourcentage permet d'agrandir ou diminuer la taille des caracteres)...je sais pas si ca vous parle....
 
Merci pour vos eventuelles réponses.

mood
Publicité
Posté le 24-10-2007 à 14:33:15  profilanswer
 

n°1630200
Taz
bisounours-codeur
Posté le 24-10-2007 à 14:36:59  profilanswer
 

tu modifies les propriétés de tes renderer.

n°1630210
tiblond
Posté le 24-10-2007 à 14:43:58  profilanswer
 

Je vois très très vaguement de quoi tu me parles...est-ce que tu pourrais me détailler un peu plus

n°1630215
tiblond
Posté le 24-10-2007 à 14:46:30  profilanswer
 

...s'il te plait...merci

n°1630263
Taz
bisounours-codeur
Posté le 24-10-2007 à 15:35:33  profilanswer
 

Hum, jamais fait de gtk2perl et ce simplelist est peut etre un peu trop simple. Peut être tu devrais regarder comment une fait un liststore classiquement.

 

Pour chaque colonne, tu as un renderer. GtkCellRendererText pour du texte. Et dessus, t'as de jolis propriétés pour changer par exemple la taille du texte, sa couleur, etc.
http://library.gnome.org/devel/gtk [...] rText.html

 

C'est possible en GTK+, ça doit l'etre via perl.

 


Message édité par Taz le 24-10-2007 à 15:36:06
n°1630274
Taz
bisounours-codeur
Posté le 24-10-2007 à 15:44:59  profilanswer
 

ok, ta SimpleList c'est un TreeView.
Regarde la doc de TreeView.
 
T'as un $tree_view->get_column ($n)
T'enchaîne un $tree_column->get_cell_renderers
Tu prend ton renderer, t'as plus qu'a toucher la propriété qui t'intéresse, genre scale ou size, genre $cell->set("size" => 12)

n°1630276
Taz
bisounours-codeur
Posté le 24-10-2007 à 15:46:12  profilanswer
 

donc tu fais ça pour chaque colonne par exemple, en montant la "scale" et ça grossit mécaniquement ta liste

n°1630434
tiblond
Posté le 24-10-2007 à 18:38:38  profilanswer
 

Wouwouuuu punaise...ca marche....
Merci beaucoup...tu viens de me faire gagner de précieuses minutes où je vais éviter d'exploser mes yeux devant l'écran d'ordi

n°1630442
tiblond
Posté le 24-10-2007 à 19:14:07  profilanswer
 

Oups pardon j'ai parlé trop vite...
 
Il s'agit d'une liste que je rempli dynamiquement (trame réseau) jusqu'à ce que je stoppe ma capture.
Et je viens de me rendre compte que toutes les lignes du champ (le 3eme) qui contient la trame brute (beaucoup de caractere en general) disparait au bout d'un moment.
Seules les infos des deux autres colonnes restent visibles. Par contre, j'arrive toujours à recuperer l'information trame dans cette liste.
 
Est-ce que l'on doit aussi fixer certains paramètres de taille au CellRenderer pour éviter ce bug d'affichage.
 
Merci et encore désolé

n°1640443
tiblond
Posté le 09-11-2007 à 17:41:00  profilanswer
 

Bonjour tout le monde,
 
J'ai crée une barre d'outil dans laquelle sont contenus des boutons permettant de se deplacer sur les lignes de la simpleliste.
Il suffit simplement de recuperer le numero de ligne selectionnée puis de l'incrémenter pour se selectionner la suivante:

Code :
  1. my @row = $listTrame->get_selected_indices;
  2. $listTrame->select($row[0]+1);


J'ai juste un petit probleme : quand je continu à me deplacer et que j'arrive sur les lignes qui ne sont pas visibles dans la scrolledBar, la selection se fait bien mais la scrolledBar ne se met pas à jour et l'on ne voit donc plus les  lignes qui sont sélectionnées.
 
Auriez-vous une piste pour m'aider un peu...
Merci beaucoup...

mood
Publicité
Posté le 09-11-2007 à 17:41:00  profilanswer
 

n°1640446
Taz
bisounours-codeur
Posté le 09-11-2007 à 17:59:11  profilanswer
 

t'as une GtkScrolledWindow ?

n°1653475
tiblond
Posté le 05-12-2007 à 18:53:01  profilanswer
 

oups pardon j'avais completement oublié ce probleme...j'ai travaillé sur un autre probleme ces derniers temps...et je ne m'étais pas apercu que tu m'avais posé une question...desolé taz
 
Par contre il est toujours en suspens ce probleme...
 
Et oui effectivement ma liste est contenue dans une Gtk2::ScrolledWindow;

n°1653476
tiblond
Posté le 05-12-2007 à 18:58:59  profilanswer
 

Suite à mon post précedent, je ne sais pas si quelqu'un saura me repondre mais en tous cas, me voici avec une nouvelle interrogation...
 
Voila j'ai crée un fenetre dans laquelle est contenue une Gtk2::Image->new_from_file ($graphImg)
 
Cette image va être modifiée dans un fichier temporaire au cours du programme et j'aurais voulu savoir comment il fallait agir pour recharger l'image dans la fenetre (suite à un callback)

n°1667875
tiblond
Posté le 08-01-2008 à 17:33:55  profilanswer
 

Bonjour c'est encore moi...
 
Je souhaiterais creer dans une de mes fenetres une zone que l'on puisse developper ou non...un peu comme sous Ubuntu pour la recherche de fichiers où en  cliquant sur un truc du genre : "->Sélectionner plus d'options" un nouvelle zone avec de nouveaux widgets apparait juste en dessous...
 
J'espere m'être assez clairement expliqué....
 
J'aimerais donc savoir si il existe un widget Gtk2 tout fait que l'on peut utiliser directement ou si c'est un peu plus compliqué que cela...
 
En tous  cas merci d'avance pour vos eventuelles reponses....

n°1667917
Taz
bisounours-codeur
Posté le 08-01-2008 à 18:29:43  profilanswer
 

Expander

n°1668186
tiblond
Posté le 09-01-2008 à 10:22:15  profilanswer
 

Merci beaucoup Taz...ca marche nickel...

n°1668241
tiblond
Posté le 09-01-2008 à 12:01:47  profilanswer
 

Ah au fait...j'en profites aussi pour te reposer la question concernant le deplacement sur les lignes de ma simplelist et où la scrolledBar ne se met pas à jour ....et l'on ne voit donc plus les  lignes qui sont sélectionnées lorsque l'on depasse la zone allouée.
 
Oui effectivement j'ai une GtkScrolledWindow...
 
Est-ce que tu aurais des pistes sur la question....
En tous cas merci encore pour tes eventuelles reponses...

n°1668246
Taz
bisounours-codeur
Posté le 09-01-2008 à 12:11:56  profilanswer
 

vérifie la policy
 
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

n°1668263
tiblond
Posté le 09-01-2008 à 13:17:50  profilanswer
 

Oui elle était déja fixée....Mystère....
 

Code :
  1. my $boxTrame = Gtk2::HBox->new( TRUE, TRUE ) ;
  2. my $scrolledTrame1 = Gtk2::ScrolledWindow->new();
  3. $scrolledTrame1->set_policy(qw/automatic automatic/);
  4. $boxTrame->pack_start($scrolledTrame1, TRUE, TRUE, 10);
  5. $scrolledTrame1->show();
  6. $vPaned -> pack1 ($boxTrame, TRUE, TRUE);

n°1668288
Taz
bisounours-codeur
Posté le 09-01-2008 à 14:33:58  profilanswer
 

et le code ou tu remplis ta scrolled ?

n°1668303
tiblond
Posté le 09-01-2008 à 14:48:34  profilanswer
 

Dans ma scrolledWindow je place un seul widget qui est une simplelist de cette facon:

Code :
  1. #Creation des champs dans lesquelles vont se décomposer chaque trame
  2. my $listTrame = createListe($scrolledTrame1,
  3.   'Numero'    => 'int',
  4.   'Source'    => 'text',
  5.   'Trame'    => 'text');
  6. .........
  7. sub createListe{
  8. my ($parent, @field) = @_;
  9. #Creation de la liste composé des champs contenus dans la table de hashage
  10. my $liste = Gtk2::SimpleList->new (@field);
  11. #Rattachement de la Liste à la barre de defilement
  12. $liste->show();
  13. $parent->add($liste);
  14. #Redimensionnement automatique des colonnes
  15. $liste->columns_autosize;
  16. map { $_->set_resizable (TRUE) } $liste->get_columns;
  17. #Alternance des couleurs pour chaque ligne
  18. $liste->set_rules_hint (TRUE);
  19. $liste->set_headers_clickable(TRUE);
  20. return $liste;
  21. }


 
Voila c'est tout....

n°1668321
Taz
bisounours-codeur
Posté le 09-01-2008 à 15:14:00  profilanswer
 

nan rien


Message édité par Taz le 09-01-2008 à 15:14:42
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Interface GTK2 - Fonction zoom sur liste

 

Sujets relatifs
[Résolu] Fonction allergique à une requête MySQLliste menu associé a un panier
Passer une liste a une fonction?Generer une liste d'ip a partir d'un masque
recherche de liste de contrat entre deux datesPasser un évènement en paramètre de fonction
Supprimer un element d'une liste chainee[Résolu] Problème avec la fonction Ubound
Pointeur fonction membre 
Plus de sujets relatifs à : Interface GTK2 - Fonction zoom sur liste


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR