Python Gtk。widget-can';不要改变背景颜色。皮格特克

Python Gtk。widget-can';不要改变背景颜色。皮格特克,python,colors,gtk,pygtk,Python,Colors,Gtk,Pygtk,我正在用python代码编写gtk接口。问题是: gtkbuilder提供的初始化条目小部件: self.SomeEntry=self.builder.get\u对象('SomeEntry') 通过键入按钮定义信号,然后必须更改输入颜色: def on_SomeButton_单击(self,widget): self.some_entry.modify_bg(Gtk.StateType.NORMAL,Gdk.Color(200001000010000000)) 但它不起作用,比如“修改基础”。我

我正在用python代码编写gtk接口。问题是:

gtkbuilder提供的初始化条目小部件:

self.SomeEntry=self.builder.get\u对象('SomeEntry')

通过键入按钮定义信号,然后必须更改输入颜色:

def on_SomeButton_单击(self,widget):
self.some_entry.modify_bg(Gtk.StateType.NORMAL,Gdk.Color(200001000010000000))

但它不起作用,比如“修改基础”。我不知道为什么。请帮忙。 对不起,我的英语(

EDIT2: 事实证明,这是一个输入框,给出了问题,这本身就是另一个问题,因为背景不是您需要修改的属性,而是基本颜色属性,通常可以使用以下方法设置:

self.entry.override_background_color(Gtk.StateType.Normal, Gdk.RGBA(0.0, 1.0, 0.0, 1.0))
但是对于OP,它不起作用,因此探索了CSS选项,列在:

编辑: 因此,通过使用PyGtk3,我能够使用一行代码获得一个改变颜色的按钮:

self.button.modify_bg(Gtk.StateType.Normal, Gdk.Color(20000, 10000, 10000))
初始化时为灰色,运行代码后为深红色。我能想到的唯一一件事是确保您试图修改的对象在运行代码后实际处于正常状态,并确保您认为触发的信号实际正在触发

==============

原职:

这里没有完整的代码,有一些事情可能会导致这种情况。我刚刚用Python编写了一个基于以下内容的测试程序:

当我为modify_bg设置Gtk状态时,我必须使用:

gtk.STATE_NORMAL
不确定这是否是由于Gtk的不同版本或其他原因造成的。 然后,当我使用Gdk时,我不得不将其称为:

gtk.gdk
我最后更改按钮颜色的一行是:

self.button.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(20000, 10000, 10000))
希望这能解决问题,但为了获得更详细的信息,我们肯定需要更多的代码,并了解您会遇到什么样的错误。

CSS有效,代码如下:

style_provider = Gtk.CssProvider()
    css = open('style.css', 'rb')
    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)
用线

“widgetname”。获取样式上下文()。添加类(“着色”)

“widgetname”已着色

CSS代码:

.colorize {

           background: rgba(200,50,50,0.3);
}

使用GtkTextView,它可以工作,但gtkwidget看起来是这样的:而是背景,并覆盖_background_color(Gtk.StateFlags.NORMAL,Gdk.RGBA(0.0,1.0,0.0,1.0))没有帮助,谢谢,但它对另一个版本很有用。我使用gtk3和python3。我一直在寻找文档,因为gtk.STATE_是一个普通的旧类型,它对我不起作用。是的,我的程序在工作中没有警告。有一个实际的代码:你提供的链接是指向文档的,而不是实际的代码,我阅读了文档并更新了我的回复。