2014-05-19 10 views
5

Ich muss die Farbe eines Widgets in irgendeiner Weise ändern, zum Beispiel, um es dunkler, grüner, um es zu invertieren. Die Farbe des Widgets wird anhand des Namens angegeben, z. B. 'orchid4'. Wie bekomme ich RGB-Werte aus einer Farbnamen-Zeichenfolge?Tkinter Farbe Name zu Farbe Objekt

+0

Erstens: http://effbot.org/tkinterbook/tkinter-widget-styling.htm – atlasologist

+0

wie peinlich – erjoalgo

+0

ich habe versucht in das Objekt inspizieren, mit Blick auf Widgets config() info, aber die gespeicherten Farben gibt es noch Farbnamen, wenn die Farbe auf diese Weise angegeben wurde. Ich habe sogar versucht, in die Farbobjektklasse und den Quellcode zu schauen, aber das führte mich zu einer unlesbaren .so-Datei. – erjoalgo

Antwort

4

Sie sollten versuchen, so etwas wie:

In [31]: rgb = button.winfo_rgb("orchid4") 

In [32]: rgb 
Out[32]: (35723, 18247, 35209) 

wo button ist der Name Ihres Widget-Objekt. Abschnitt

+0

Was ist die Reichweite dieser Nummern? Normalerweise erwarte ich Farben in [0,255]. – Kevin

+0

Dies sind 16-Bit-RGB-Werte, die von 0 bis 65535 reichen. Sie können jeden Wert durch 256 teilen, wenn Sie den Bereich von 0 bis 255 wünschen. – DanGar