Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Interfaces Graphiques
Interfaces Graphiques Forum d'entraide pour les interfaces graphiques en Perl (TK, GTK, Tk-Zinc, 2D et 3D avec OpenGPL, ....). Avant de poster, veuillez consulter la FAQ Perl/Tk , les cours Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/03/2012, 11h00   #1
hauru
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : août 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : août 2011
Messages : 35
Points : 37
Points : 37
Par défaut perl tk:tree display tous les elements d'un arbre

Bonjour,

Voici mon arbre:



Je souhaiterai avoir la liste de tous les éléments de cet arbre sans avoir à selectionner celui-ci.

Si je selectionne l'arbre en entier et que je fais:
Code :
$arbre->info('selection')
j'ai ce que je souhaite, à savoir:
Code :
1
2
3
4
5
6
7
 
$VAR1 = 'listCollections 1@test0';
$VAR2 = 'listCollections 1@test0'@test0.0;
$VAR3 = 'listCollections 1@test0'@test0.0@test0.0.0;
$VAR4 = 'listCollections 1@test0'@test0.0@test0.0.1;
$VAR5 = 'listCollections 1@test0'@test0.1;
...

Cependant, j'aimerai avoir le meme résultat sans avoir à selectionner tout l'arbre (c'est a dire avoir un equivalent du get( 0, 'end' ) des listbox, mais pour les arbres)
Comment faire?

J'espère avoir donné suffisament précis.
hauru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 12h35   #2
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 573
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 573
Points : 31 503
Points : 31 503
Peux-tu nous mettre un exemple basique que l'on puisse tester, qui nous génère un tree
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 14h35   #3
hauru
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : août 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : août 2011
Messages : 35
Points : 37
Points : 37
Voici un exemple basique de création d'un tree

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/opt/perl_5.8.8/bin/perl -w
use warnings;
use strict;
use Tk;
use Tk::Tree;
use Data::Dumper;
 
my $mw = Tk::MainWindow->new();
$mw->minsize( 400 , 200 );
my $Frame = $mw->Frame()->pack();
 
#liste des elements de l'arbre avec la hierarchie (en dur)
my @elements=('listCollections',
'listCollections@test0',
'listCollections@test0@test0.0',
'listCollections@test0@test0.0@test0.0.0',
'listCollections@test0@test0.0@test0.0.1',
'listCollections@test0@test0.1',
'listCollections@test2',
'listCollections@test2',
'listCollections@test0@test2.0'
);
 
#creation du widget arbre
my $tree = $Frame->Scrolled(
		    'Tree',
		    -highlightthickness => 0,
		    -relief             => 'flat',
		    -scrollbars         => 'osoe',
		    -borderwidth        => 1,
		    -separator          => '@',
		    -drawbranch         => 'true',
		    -indicator          => 'true',
		    -width		=> '50',
		    -height		=> '10',
		    -selectborderwidth  => '0',)->pack();
 
#creation de l'arbre
$tree->autosetmode;
foreach(@elements){
	my @chemin=split(/\@/,$_);
	my $test = $tree->info( 'exists', $_ );
	$tree->add($_, -text => $chemin[-1], -itemtype, 'text') unless( $test );
}
 
#voir le nom de l'element selectionné
$tree->bind('<Button-1>',sub{ print Dumper($tree->info( 'selection' ))."\n" });
 
MainLoop();

Je voudrai avoir acces au nom de tous les éléments de l'arbre sans avoir a utiliser @elements (mon arbre est crée autement).
hauru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 15h00   #4
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 573
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 573
Points : 31 503
Points : 31 503
Cette méthode pourra vous donner les informations voulues : child_entries. Regardez la documentation de Tk::Tree.
__________________
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h51.


 
 
 
 
Partenaires

Hébergement Web