Gtk。小部件 - 无法更改背景色。 pygtk
Gtk. widget - can't change bg color. Pygtk
我用 python 代码编写 gtk 界面。问题是:
由 gtkbuilder 初始化入口小部件:
self.some_entry = self.builder.get_object('SomeEntry')
通过输入按钮定义信号,然后必须更改输入颜色:
def on_SomeButton_clicked(self, widget):
self.some_entry.modify_bg(Gtk.StateType.NORMAL,Gdk.Color(20000,10000,10000))
但是不行,比如'modify_base'。我不知道为什么。请帮助。
对不起我的英语(
编辑2:
原来这是一个输入框,它本身就是另一个问题,因为背景不是您需要修改的 属性 而是通常可以使用以下方式设置的基本颜色 属性:
self.entry.override_background_color(Gtk.StateType.Normal, Gdk.RGBA(0.0, 1.0, 0.0, 1.0))
但是对于 OP 它不起作用,因此探索了 CSS 选项,列于:https://mail.gnome.org/archives/gtk-app-devel-list/2005-November/msg00236.html
编辑:
所以使用 PyGtk3 我能够使用你的代码行来获得一个改变颜色的按钮:
self.button.modify_bg(Gtk.StateType.Normal, Gdk.Color(20000, 10000, 10000))
初始化时为灰色,代码运行后为深红色。我唯一能想到的是确保您尝试修改的对象在您 运行 代码之后实际上处于正常状态,并确保您认为正在触发的信号实际上正在触发。
==============
原文post:
这里没有完整的代码,有一些原因可能会导致此问题。我刚刚在 Python 中拼凑了一个测试程序,基于:http://pygtk.org/pygtk2tutorial/examples/helloworld.py
当我为 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".get_style_context().add_class("colorize")
“widgetname”已被着色。
CSS代码:
.colorize {
background: rgba(200,50,50,0.3);
}
我用 python 代码编写 gtk 界面。问题是:
由 gtkbuilder 初始化入口小部件:
self.some_entry = self.builder.get_object('SomeEntry')
通过输入按钮定义信号,然后必须更改输入颜色:
def on_SomeButton_clicked(self, widget):
self.some_entry.modify_bg(Gtk.StateType.NORMAL,Gdk.Color(20000,10000,10000))
但是不行,比如'modify_base'。我不知道为什么。请帮助。 对不起我的英语(
编辑2: 原来这是一个输入框,它本身就是另一个问题,因为背景不是您需要修改的 属性 而是通常可以使用以下方式设置的基本颜色 属性:
self.entry.override_background_color(Gtk.StateType.Normal, Gdk.RGBA(0.0, 1.0, 0.0, 1.0))
但是对于 OP 它不起作用,因此探索了 CSS 选项,列于:https://mail.gnome.org/archives/gtk-app-devel-list/2005-November/msg00236.html
编辑: 所以使用 PyGtk3 我能够使用你的代码行来获得一个改变颜色的按钮:
self.button.modify_bg(Gtk.StateType.Normal, Gdk.Color(20000, 10000, 10000))
初始化时为灰色,代码运行后为深红色。我唯一能想到的是确保您尝试修改的对象在您 运行 代码之后实际上处于正常状态,并确保您认为正在触发的信号实际上正在触发。
==============
原文post:
这里没有完整的代码,有一些原因可能会导致此问题。我刚刚在 Python 中拼凑了一个测试程序,基于:http://pygtk.org/pygtk2tutorial/examples/helloworld.py
当我为 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".get_style_context().add_class("colorize")
“widgetname”已被着色。
CSS代码:
.colorize {
background: rgba(200,50,50,0.3);
}