Erhalten Sie Farben des gegenwärtigen gtk Art

Ich benutze PyGTK und ich möchte Farben eines Widgets bekommen (zB bg Farbe), ich laufe einen solchen Code:

gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257) widget = gtk.HBox() ## for example style = widget.get_style() for i in range(5): print i, gdkColorToRgb(style.bg[i]) 

Aber es gibt keine Farben von meinem aktuellen gtk Thema (Stil). Es scheint, für Standard-gtk-Thema zu sein (mein aktuelles Thema ist dunkel, während dieser Code Licht gibt) Ich verwende ArchLinux und PyGTK 2.24.0 (GTK 2.24.5)

One Solution collect form web for “Erhalten Sie Farben des gegenwärtigen gtk Art”

Ich stolperte nur auf die gleiche Frage, stellte deine Frage und fand eine Lösung: Du musst warten bis das Widget realisiert ist, zB wie folgt:

 def print_style(widget): style = widget.get_style() for i in range(5): print i, gdkColorToRgb(style.bg[i]) gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257) widget = gtk.HBox() ## for example widget.connect('realize', print_style) 
Python ist die beste Programmiersprache der Welt.