Python 3.x Python3,Gtk3,Glade,根据代码设置标签颜色

Python 3.x Python3,Gtk3,Glade,根据代码设置标签颜色,python-3.x,gtk3,glade,Python 3.x,Gtk3,Glade,我有一个带有灰色默认颜色标签的Glade文件, 我想用代码中的绿色覆盖它 因此,我在Glade中添加了一个样式类: 并将此添加到我的Python脚本中: 但是,颜色仍为灰色 我做错了什么 我做的有点不同 在fileforcolors.css中 我包括 #resetstddata_button { background: #00BFFF; } 其中“resetstddata_按钮”是glade文件中小部件的名称(打开glade编辑器,单击要更改颜色的GTK按钮,页面“common”,

我有一个带有灰色默认颜色标签的Glade文件, 我想用代码中的绿色覆盖它

因此,我在Glade中添加了一个样式类:

并将此添加到我的Python脚本中:

但是,颜色仍为灰色


我做错了什么

我做的有点不同

在fileforcolors.css中

我包括

#resetstddata_button {
    background: #00BFFF;
}
其中“resetstddata_按钮”是glade文件中小部件的名称(打开glade编辑器,单击要更改颜色的GTK按钮,页面“common”,您会看到参数条目“小部件名称”,将“resetstddata_按钮”放入其中)

此按钮颜色更改的python3代码提取为:

style_provider = gtk.CssProvider()
css = open('/home/fileforcolors.css',
           'rb')  # rb needed for python 3 support

css_data = css.read()
css.close()
style_provider.load_from_data(css_data)
gtk.StyleContext.add_provider_for_screen(gdk.Screen.get_default(), style_provider,
                                         gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

希望它能有所帮助。

问题是,Glade最初在生成的XML文件中的样式类名前面加了一个点(请参见OP中的屏幕截图)

您需要编辑Glade XML文件并将其删除:


之后,您可以在Glade GUI中重复更改样式类名,它不会再得到一个点。

谢谢@floppy_molly,感谢您的宝贵贡献。这没什么区别,但它给我带来了另一种思路。经过一番周折,我终于找到了问题的答案。我忘记了一个重要的话题:这个按钮在一个彩色的事件框中。按钮只是半透明的,让颜色通过。self.eventbox\u exitbutton.override\u background\u color(gtk.StateFlags.NORMAL,gdk.RGBA(1,0,0,1))=我以前的答案只有答案的20%(我正在阅读一些旧代码,忘记了整个故事)。因此,创建一个eventbox。把它涂上颜色。放一个按钮在里面(玩透明),你会有一点颜色。