Forum Programmation.python Problème de couleur GC/DrawingArea

Posté par  .
Étiquettes : aucune
-1
20
avr.
2011

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

<?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
#!/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 :

test.jpg

J'implore votre aide :/

EDT : J'ai aussi posté mon problème sur développez : ici ainsi que comment j'ai "résolu" le problème.

Mais si quelqu'un comprend pourquoi l'exemple précédent ne marche pas je suis toujours preneur :P

Suivre le flux des commentaires

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