URL: https://linuxfr.org/forums/programmationautre/posts/pygtk-ou-gtk-tout-court Title: pygtk (ou gtk tout court) Authors: thor_tue Date: 2008年04月29日T18:36:27+02:00 Tags: Score: 0 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.