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 :

couleur d'une combobox


Sujet :

GTK+ avec Python

  1. #1
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut couleur d'une combobox
    Bonjour,

    Je crée une combobox de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    self.simulation_combobox = gtk.combo_box_new_text()		
    for s in simulations:
       self.simulation_combobox.append_text(s)
    Sur cet objet, je n'arrive pas à changer la couleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.simulation_combobox.modify_bg(gtk.STATE_NORMAL,gtk.gdk.Color(40000,30000,20000))
    cela n'a pas d'effet (modify_base idem)
    Si quelqu'un a déjà rencontré cela ...

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    J'ai le même problème, j'ai essayé ça, mais ca ne marche pas mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            frame.combobox = gtk.combo_box_new_text()
            style = gtk.Style()
            style.fg[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")
            style.bg[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")
            style.text[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")
            frame.combobox.set_style(style)

    Il y a ce topic qui répond partiellement à la question :

    Modification de couleur des widgets

    si la combobox se comporte comme le label, on ne peut pas lui appliquer le style directement.
    Mais j'ai pas encore essayé de la mettre dans un eventbox

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Je viens d'essayer d'appliquer un style, pour une entry ou un label contenu dans un eventBox ca marche. Par contre, ca marche toujours pas avec la combobox... :

    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
     
        eventBox = gtk.EventBox()
        eventBox.modify_bg(gtk.STATE_NORMAL,gtk.gdk.color_parse("#00CFDE"))
        eventBox.modify_fg(gtk.STATE_NORMAL,gtk.gdk.color_parse("#00CFDE"))
        eventBox.modify_text(gtk.STATE_NORMAL,gtk.gdk.color_parse("#00CFDE"))
     
        box = gtk.combo_box_new_text()
        box.append_text('FALSE')
        box.append_text('TRUE')
        box.set_active(0)
     
        entry = gtk.Entry()
     
        label = gtk.Label("Bonjour")
     
        hbox = gtk.HBox(True, 0)
        hbox.add(box)
        hbox.add(entry)
        hbox.add(label)
        eventBox.add(hbox)
    ou

    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
     
        eventBox = gtk.EventBox()
     
        style = gtk.Style()
        style.fg[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")
        style.bg[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")
        style.text[gtk.STATE_NORMAL]= gtk.gdk.color_parse("#DE0004")        
        eventBox.set_style(style)    
     
        box = gtk.combo_box_new_text()
        box.append_text('FALSE')
        box.append_text('TRUE')
        box.set_active(0)
     
        entry = gtk.Entry()
     
        label = gtk.Label("Bonjour")
     
        hbox = gtk.HBox(True, 0)
        hbox.add(box)
        hbox.add(entry)
        hbox.add(label)
        eventBox.add(hbox)

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    J'ai réussi à changer la couleur du text
    Il faut en fait appliquer le style sur les éléments de la combobox et non sur la combobox elle-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        box = gtk.combo_box_new_text()
        box.append_text('FALSE')
        box.append_text('TRUE')
        box.set_active(1)
        box.child.set_style(style)
    au lieu de



    J'ai trouvé la réponse à partir de ce topic

    Par contre, je ne sais toujours pas comment changer la couleur de fond... mais c'est déjà un début !

  5. #5
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    super, on avance un peu !
    mais on ne sait toujours pas pour la couleur de fond.

    Merci

  6. #6
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Je n'ai pas avancé pour la couleur du fond, même en mettant la combobox dans une eventbox !
    par contre la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    combobox.child.modify_text(gtk.STATE_NORMAL,gtk.gdk.color_parse("#DE0004"))
    marche aussi pour la couleur du texte, sans avoir à créer de style.

    A+

  7. #7
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Ouf, j'ai passé du temps, mais j'ai enfin trouvé la solution. Vue l'absence de réponses sur les différents forum, soit c'était évident, soit je vais faire des heureux.
    Voilà un code qui marche, l'astuce est de se référer au traitement de la couleur pour les cellules dans un treeview. C'est similaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cmap = self.win.get_colormap()
    normal_color = cmap.alloc_color(10000,3000,30000)
    liststore = gtk.ListStore(str,gtk.gdk.Color)
    for s in self.simulations:
       liststore.append([s,normal_color])
    self.simulation_combobox = gtk.ComboBox(liststore)
    cell = gtk.CellRendererText()
    self.simulation_combobox.pack_start(cell, True)
    self.simulation_combobox.add_attribute(cell, 'text', 0)  
    self.simulation_combobox.add_attribute(cell, 'cell-background-gdk', 1)
    CQFD

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Couleur d'arrière-plan des items d'une QComboBox
    Par mr_samurai dans le forum Qt
    Réponses: 7
    Dernier message: 18/10/2019, 11h06
  2. Couleur d'un élément d'une ComboBox
    Par freestyler dans le forum Delphi
    Réponses: 16
    Dernier message: 10/01/2017, 17h43
  3. Définir la couleur de sélection d'une combobox
    Par sayou84 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 08/04/2010, 11h58
  4. [XL-2003] Remplir une combobox avec la palette de couleur
    Par DUIS2001 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/09/2009, 03h53
  5. Comment changer la couleur d'une combobox ?
    Par PetitPapaNoël dans le forum MFC
    Réponses: 6
    Dernier message: 16/03/2007, 11h00

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