Forum Programmation.autre pygtk (ou gtk tout court)

Posté par  .
Étiquettes : aucune
0
29
avr.
2008
Salut.

Je 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.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.