OVH Cloud OVH Cloud

Gtk2 et $tree_view->get_model

1 réponse
Avatar
Newsgroups
Bonjour,

J'ai un soucis, =E0 la lecture de la documentation de Gtk2::TreeView

En effet, sur la page
http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/TreeView.htm

je lis ceci : "treemodel or undef =3D $tree_view->get_model"
Ce qui signifie que "th=E9oriquement", si je fais un $tree_view->get_model
alors il me renvoi un Gtk2::TreeModel.

Or, voici un bout de mon code :

print "view : ".$treeview."\n";
print "model : ".$treeview->get_model()."\n";

et la console me dis :
view : Gtk2::TreeView=3DHASH(0x8d1bf78)
model : Gtk2::TreeStore=3DHASH(0x8268e1c)

Ma conclusion en est la suivante :
Ma variable treeview est bien un Gtk2::TreeView
par contre la fonction get_model me renvoi un TreeStore alors que selon
la doc il est cens=E9 me renvoyer un TreeModel.

Une explication ? o=F9 ai-je fais la ptite b=E9tise qui me rend fou depuis
une heure ?

Merci de vos explications.

1 réponse

Avatar
Paul Gaborit
À (at) Mon, 06 Nov 2006 17:33:54 +0100,
Newsgroups écrivait (wrote):
J'ai un soucis, à la lecture de la documentation de Gtk2::TreeView

En effet, sur la page
http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/TreeView.htm

je lis ceci : "treemodel or undef = $tree_view->get_model"
Ce qui signifie que "théoriquement", si je fais un $tree_view->get_model
alors il me renvoi un Gtk2::TreeModel.

Or, voici un bout de mon code :

print "view : ".$treeview."n";
print "model : ".$treeview->get_model()."n";

et la console me dis :
view : Gtk2::TreeView=HASH(0x8d1bf78)
model : Gtk2::TreeStore=HASH(0x8268e1c)

Ma conclusion en est la suivante :
Ma variable treeview est bien un Gtk2::TreeView
par contre la fonction get_model me renvoi un TreeStore alors que selon
la doc il est censé me renvoyer un TreeModel.

Une explication ? où ai-je fais la ptite bétise qui me rend fou depuis
une heure ?


C'est un problème objet. Il se trouve que Gtk2::TreeStore implémente
l'interface de la classe Gtk2::TreeModel (qui n'est, d'après la doc,
qu'une classe abstraite). Donc le Gtk2::TreeStore que vous récupérez
peut aussi être considéré comme un Gtk2::TreeModel.

PS: je ne suis pas sûr que la classe Gtk2::TreeStore hérite réellement
de Gtk2::TreeModel même si elle le devrait. On peut le vérifier en
passant par la méthode 'isa' de UNIVERSAL. Mais cela ne l'empêche pas
d'implémenter toutes les méthodes de cette classe...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>