Bonjour à tous,
J'ai un probléme avec l'affectation et/ou l'utilisation d'une couleur. je doit dessiner sur une zone de dessin, tout se passe bien temps que j'utilise le white_gc ou le black_gc mais je n'arrive créer mon propre GC avec la couleur souhaité
dès que j'utilise la méthode set_foreground() j’obtiens une couleur aléatoire...
J'utilise pyGTK et glade pour créer l'interface et je n'est aucune idée d'ou viens le problème, j'ai parcourue toute la doc en long, en large, en anglais, en français et je ne voie pas se qui ne marche pas.
je comprend pas, ça doit être une erreur débile, ou alors j'ai vraiment rien compris a l'utilisation du gc...
Voici un exemple de code qui affiche une couleur random
test.glade
test.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0"?> <glade-interface> <!-- interface-requires gtk+ 2.16 --> <!-- interface-naming-policy project-wide --> <widget class="GtkWindow" id="window"> <property name="visible">True</property> <signal name="destroy" handler="on_window_destroy"/> <child> <widget class="GtkDrawingArea" id="zone_dessin"> <property name="visible">True</property> <signal name="expose_event" handler="on_zone_dessin_expose_event"/> </widget> </child> </widget> </glade-interface>
Un petit screen du resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #!/usr/bin/env python import gtk import gtk.glade class test: def __init__(self): self.gladefile = "test.glade" self.wTree = gtk.glade.XML(self.gladefile) dic = { "on_window_destroy" : gtk.main_quit, "on_zone_dessin_expose_event" : self.zone_dessin_expose_event } self.wTree.signal_autoconnect(dic) self.zd = self.wTree.get_widget("zone_dessin") self.gc = self.zd.window.new_gc() def zone_dessin_expose_event(self, widget, event): self.gc.set_foreground(gtk.gdk.Color('#FFF')) #~ print self.gc.foreground.to_string() x, y, largeur, hauteur = event.area self.zd.window.draw_rectangle(self.gc,True, x, y, largeur, hauteur) if __name__ == "__main__": hwg = test() gtk.main()
J'implore votre aide![]()
Partager