Accueil » Python » Forums Python » Forum général Python » GTK , glade et couleur

 • GTK , glade et couleur

Document Actions
Réponses: 0   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • GTK , glade et couleur

Posté par geka le 04/02/2010 15:41
bonjour,

je suis nouveau sur le forum, et je débute en python avec GTK.

voila mon probleme :

j'ai fait un petit programme pour tracer un carre de couleur dans une fenetre, mais je n'arrive pas à changer la couleur des points traces

je n'ai surement pas tout compris dans l'utilisation des contextes graphiques.

merci de votre aide

geka



/*******
voici le fichier test.py :

#!/usr/bin/env python

import sys
try:
import pygtk
pygtk.require("2.0";)
except:
pass
try:
import gtk
import gtk.glade
except:
sys.exit(1)


class pyWin:
def __init__(self):
#attache la structure de l'interface creer par Glade au programme
self.gladefile="test.glade"
self.winTree=gtk.glade.XML(self.gladefile)
#cree le dictionnaire des signaux des widgets
dic={"on_window1_destroy":self.quitte,"on_button1_clicked":self.test}
self.winTree.signal_autoconnect(dic)
#cree la fenetre
self.laFenetre=self.winTree.get_widget("window1";)
#cree le canvas de dessin
self.leCanvas=self.winTree.get_widget("feuille";)
self.laFeuille=self.leCanvas.window
self.pangolayout = self.leCanvas.create_pango_layout("";)


self.style = self.leCanvas.get_style()
self.gc = self.style.fg_gc



#fonction appelees par les signaux
def quitte(self,widget):
gtk.main_quit()
def test(self,widget):
self.draw()
#fonction de dessin
def draw(self):
color = self.gc.foreground
print "ancienne couleur : ",color
#color = gtk.gdk.Color(100,100,0,0)
color = self.laFeuille.get_colormap().alloc_color(10, 0, 10)
print "nouvelle couleur : ",color
self.gc.foreground=color
color1 = self.gc.foreground
print "couleur installee : ",color1
for i in range(10):
for j in range(10):
self.laFeuille.draw_point(self.gc,i,j)
return True




if __name__=="__main__":
window01=pyWin()
gtk.main()

*****/
/*****
et voici le fichier test.glade :

<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">

<glade-interface>

<widget class="GtkWindow" id="window1">
<property name="visible">True</property>
<property name="title" translatable="yes">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<signal name="destroy" handler="on_window1_destroy" last_modification_time="Thu, 04 Feb 2010 07:48:15 GMT"/>

<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>

<child>
<widget class="GtkButton" id="button1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">button1</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_button1_clicked" last_modification_time="Thu, 04 Feb 2010 07:49:04 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>

<child>
<widget class="GtkDrawingArea" id="feuille">
<property name="width_request">400</property>
<property name="height_request">400</property>
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>

<child>
<placeholder/>
</child>
</widget>
</child>
</widget>

</glade-interface>

*****/

voici ce que me donne la console :

ancienne couleur : #000000005840
nouvelle couleur : #000a0000000a
couleur installee : #000000005840
Ce sujet ne contient aucune réponse