如何在Python3中更改Gtk3 Entry文本颜色?
作者:互联网
我在我的应用程序中有一个Gtk.Entry()列表,我想改变其中一些文本的颜色.
我尝试了以下方法:
#!/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()
但后来文本是看不见的.我尝试了Gdk.RGBA的不同值,从0.0到1.0,从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()的文本颜色而不修改其他颜色?
解决方法:
将Alpha通道设置为1.0:
self.myOkEntry.override_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0.0, 1.0, 0.0, 1.0))
标签:python,gtk3,python-3-2 来源: https://codeday.me/bug/20190620/1245136.html