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
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>
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
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()
Un petit screen du resultat :


J'implore votre aide