python如何更改entry属性_如何在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"))
印刷品:
所以我嘗試過:
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
我找到了一些關于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
總結
以上是生活随笔為你收集整理的python如何更改entry属性_如何在Python3中更改Gtk3 Entry文本颜色?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (最短路)Shopping
- 下一篇: (贪心)整数区间