2009-08-18 3 views
1

ich dies tun:in GTK, wie bekomme ich die ursprüngliche normale bg Farbe eines Widgets?

self.origbg = self.style.bg[gtk.STATE_NORMAL] 

und später in meinem eventboxes ich die bgcolor um es zu ändern, indem Sie:

self.modify_bg(gtk.STATE_NORMAL, color) 

jedoch die Farbe tatsächlich ändert! Es ist nicht die Farbe von state_normal, die ich durch das Betrachten von self.style.bg erhalte. Auf meinem Windows ist es eine etwas hellere Tönung. Wie bekomme ich die echte Hintergrundfarbe?

Antwort

1

Connect zum Widget des „map-Ereignis“ -Signal (welches gesendet wird, wenn das Widget zuerst in einem Fenster angezeigt wird); Dies ist das erste Mal, dass Sie die echten Themenfarben lesen können.

+1

dies besser werden soll, erhalten dokumentiert – Claudiu

3

Wenn Sie Karte Ereignis hören vermeiden möchten, sollten Sie realize() anrufen und dann Farben. Ich weiß, dass dies ein altes Problem ist, wollte aber nur dazu beitragen, dass die Leute darauf stoßen, wie ich es getan habe. :)

0

ich diese verwenden, um die Standardhintergrundfarbe für einen Eintrag in GTK3

context = entry.get_style_context() 
    default_background = context.get_background_color(Gtk.StateType.NORMAL) 
Verwandte Themen