Retourner aux forums || Retourner au forum Programmation.autre
Programmation.autre : pygtk (ou gtk tout court)
Posté par thor_tue () le 29 avril 2008Je poursuis ma découverte de pygtk et je suis confronté
au problème suivant ; comment faire communiquer des widgets
entre-eux ?
Considérez l'exemple suivant, pour fixer les idées :
widget1 : une "drawingarea" dessinant un segment de droite, grâce à
la souris
widget2 : une boîte avec 4 "entry" (les coordonnées des extrémités du segment)
widget3 : un "label" affichant la longueur du segment
les widget{1,2,3} dans une fenêtre.
Illustration :
...widget1......widget2..........widget3
######################
#.............#...................#..................#
#.............#...................#..................#
#.............#.x1.=.|10|...#..................#
#.......+...#.y1.=.|20.|..#..................#
#......+....#.x2.=.|15.|..#.long.=.47.#
#.....+.....#.y2.=.|23.|..#..................#
#....+......#..................#..................#
#...+.......#..................#..................#
#.............#..................#..................#
######################
Ce que je veux :
1) lorsque l'utilisateur modifie le widget1 (w1),
les widget w2 et w3 sont mis à jour en "temps réel"
(coordonnées modifiés, long. recalculée)
2) lorsque l'utilisateur édite les "entry" de w2 alors w1 et w3
sont mis à jour en temps réel (segment redessiné, long. recalculée)
Bref, en schématisant (la flèche signifiant ordre de mise à jour) :
w1 -> w2, w1 -> w3
w2 -> w1, w2 -> w3
w3 -> aucun
Comment peut-on architecturer tout cela "sainement" ?
Faut-il créer une classe "gestionnaire de signaux" centrale, qui
à chaque widget (variable) donné associe une liste des widgets
à modifier ? Ou le simple emploi d'"EventBox" suffira ?
Bien évidemment, en pratique je vais avoir beaucoup plus
de widgets et de variables, c'est juste un exemple artificiel
pour illustrer. Je voudrais juste le PRINCIPE GÉNÉRAL à utiliser pour
ne pas m'embarquer dans une solution foireuse, les docs que j'ai
trouvées expliquent *comment* manipuler les widgets, mais parlent
peu d'organisation générale.
Merci.
> Lire le message (4 commentaires, moyenne: 1,5).
kefir
Il existait tepache, mais le projet semble mort :
http://www.gnomefiles.org/app.php/tepache
son successeur est kefir je crois (mais cela n'a pas l'air d'avoir bougé depuis 2 ans) :
http://kefir.sourceforge.net/index.php
c'est pas mal car cela permet de relier facilement une interface créée avec Glade, et d'ajouter ton code sur les widgets qui sont ainsi repérés grâce à kefir.
Cela ne répond peut être pas vraiment à ta question, surtout sur la fin, pas cela peut peut-être aider pour la partie "comment faire communiquer des widgets entre-eux ?"
No troll found in this incoming post.
Checked by ATG.
Version: 7.4.821 / Trollifiante Database: 247.13.2/1101 - Release Date: 30/04/2008 12:29
[ Répondre ]
Les docs ne parlent pas d'oganisation générale
...tout simplement parce que c'est de l'ordre de la conception. Je te conseille donc fortement de te renseigner sur le design pattern MVC (Mod%C3%A8le-Vue-Contr%C3%B4leur).
[ Répondre ]
-
[^]Re: Les docs ne parlent pas d'oganisation générale
-
[^]Re: Les docs ne parlent pas d'oganisation générale
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.autre


