IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec Python Discussion :

Problème de couleur GC/DrawingArea


Sujet :

GTK+ avec Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Par défaut Problème de couleur GC/DrawingArea
    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

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par défaut
    Bonjour,

    Je programme actuellement un application utilisant une zone de dessin, et j'ai eu le même soucis que vous, malheureusement la toile n'est pas très fructeuse concernant les gtk.drawarea.

    Je n'ai actuellement pas le code sur moi (demain) mais je tenais à vous donner un petit coup de main dès maintenant au cas ou vous en auriez besoin.

    Je vous invite a regarder la fonction :
    http://www.pygtk.org/docs/pygtk/clas...k--color-parse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    couleur = gtk.gdk.Color(red=0, green=0, blue=0, pixel=0)
    couleur.color_parse("#000000")
    self.gc.set_foreground(couleur)
    La méthode que j'utilise dans mon code, je passe par un gtk.ColorButton et je récupère la couleur avec get_color() (retourn a gtk.gdk.Color )
    http://www.pygtk.org/docs/pygtk/clas...ton--get-color

    J'espere que cela a pu vous aider...

    Mickael

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Par défaut
    Merci pour ta réponse

    J'ai finalement réussis a m'en sortir en m'inspirant de ce topic : http://www.developpez.net/forums/d10...-drawing-area/
    J'était passé à coté des méthodes modify_fg et modify_bg puisse qu'elle sont associé a tout les widgets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    self.widget_Zd.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#999999"))
    self.widget_Zd.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("#444444"))
    self.widget_Zd.modify_fg(gtk.STATE_ACTIVE, gtk.gdk.color_parse("#FF0000"))
    du coup j'utilise les fg_gc et bg_gc du style associé a la zone de dessin se qui est suffisant puisque je n'ai besoin que de 3 couleurs.

    Mais j'aurai préféré utiliser un gc qui est bien plus pratique pour régler la largeur de la ligne dessiné ou autre.

    Donc si quelqu'un à une solution un peu plus propre, je suis preneur

Discussions similaires

  1. [VB6] Probléme de couleurs de bouttons !!
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/04/2006, 11h39
  2. Problème de couleur de lien sous IE
    Par Rekiem dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/09/2005, 13h47
  3. problème de couleur dans le Menu [MainMenu - ImageList]
    Par alec_002 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 01/09/2005, 15h29
  4. [Problème] Mauvaise couleur de fond !
    Par MonsieurAk dans le forum Windows
    Réponses: 5
    Dernier message: 17/08/2005, 14h31
  5. Probléme de couleur.
    Par Clad3 dans le forum OpenGL
    Réponses: 9
    Dernier message: 16/04/2005, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo