我已经找了几天关于如何在Python/Gtk3中更改小部件颜色的信息,但没有找到太多。我特别想做的是更改CSS中ToggleButtons的颜色。Gtk文档对我没有帮助,因为我不懂C。
我尝试在以下位置理解代码:
Change the Background color of a Toglebutton when pressed in GTK3 (C language)
,并将其更改为Python,如下所示,但按钮颜色不变。有人能告诉我,是否有一个很好的资源可以让Python程序员使用Gtk程序的CSS,或者有人能给我指明正确的方向来更改下面的代码吗?提前谢谢。
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
class btn:
def __init__(self):
# From https://stackoverflow.com/questions/41796529/
styleProvider=Gtk.CssProvider()
css = b"""
GtkWindow {
background-color: #A4A4A4;
color: cyan;
border-width: 3px;
border-color: blue;
}
#myGrid {
background-color: white;
border-style: solid;
border-width: 3px;
border-radius: 15px;
border-color: grey;
}
#myChild {
background-color: red;
border-style: solid;
border-width: 3px;
border-radius: 15px;
border-color: grey;
}
#tgl_btn{
background-color: red;
color: red;
}
GtkButton {
background-image: none;
background-color: blue;
}
GtkButton:active {
background-color: #00FF00;
}
"""
styleProvider.load_from_data(css)
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),styleProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
self.window = Gtk.Window()
self.btn = Gtk.ToggleButton(label = 'tgl_btn')
self.window.add(self.btn)
self.window.show_all()
def main(self):
Gtk.main()
p=btn()
p.main()