我在我的應用程序中有一個Gtk.Entry()
的列表,我想更改其中一些文本的顏色。如何更改Python3中的Gtk3條目文本顏色?
我試過如下:
#!/usr/bin/python3
# Filename: mywindow.py
from gi.repository import Gtk
from gi.repository import Gdk
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="My window")
self.mainGrid = Gtk.Grid()
self.add(self.mainGrid)
self.myOkEntry = Gtk.Entry()
self.myOkEntry.set_text("This is OK (green)")
self.myOkEntry.override_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0.0, 1.0, 0.0, 0.0))
self.mainGrid.add(self.myOkEntry)
mainWin = MyWindow()
mainWin.connect("delete-event", Gtk.main_quit)
mainWin.show_all()
Gtk.main()
但隨後的文本也看不見。我嘗試了0.0到1.0的Gdk.RGBA的不同值,0到65000的值也是一樣的。 另一個測試:
print(Gdk.color_parse("green"))
打印:
<Gdk.Color(red=0, green=65535, blue=0)>
所以,我想:
print(Gdk.RGBA(Gdk.color_parse("green")))
但是:
File "/usr/lib/python3/dist-packages/gi/overrides/Gdk.py", line 55, in __init__
self.red = red
TypeError: argument 2: Must be number, not Color
我有點困惑。 我使用的單證主要有:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/
https://developer.gnome.org/gtk3/stable/
我發現關於CSS樣式一些文件,我可以用它喜歡:
GtkEntry {
color: #000000
}
GtkEntry#ok {
color: #00cc00
}
GtkEntry#error {
color: #cc0000
}
像HTML比如?這個文檔在前面的問題中被鏈接到Python3/Gtk3
Entry color
那麼,我的問題是:如何在不修改其他顏色的情況下更改一個Gtk.Entry
也許這能讓你走向正確的方向嗎? http://stackoverflow.com/questions/13187207/setting-selected-property-of-row-in-treeview-dynamically-in-gtk3-python – deinonychusaur 2013-04-14 11:02:53