在我的应用程序中,我正在尝试使用GTK rc文件来设置小部件的样式:
style "boxstyle1"
{
bg[ACTIVE] = { 0.0, 1.0, 0.0 }
bg[NORMAL] = { 1.0, 0.0, 0.0 }
bg[PRELIGHT] = { 0.0, 0.0, 1.0 }
}
widget "*.eventbox1" style "boxstyle1"
虽然采用正常颜色,但其他状态没有。谁遇到过这个问题?
编辑:
在小部件初始化后进行调试时,widget->样式会正确存储所有值。
我注册状态改变的事件,当'状态'改变时,它永远不会触发。 在输入,离开,推送,释放事件时,我检查了widget->状态始终为0。 继续检查...
如果我在事件框中放置一个图像,图像 - >状态也永远不会更新...
我正在使用GTK 2.16,使用GtkBuilder加载xml
gtk_widget_modify_bg(widget,GTK_STATE_ACTIVE,color)也不会因0(NORMAL)以外的状态而改变
答案 0 :(得分:0)
GtkEvent
没有任何状态:它只是一个没有默认绘制任何内容的容器(因此没有任何可以激活或 prelighted 的东西)。
如果您希望自定义事件框的子窗口小部件,则应在rc文件中使用正确的glob syntax:
widget "*.eventbox1.*" style "boxstyle1"
新添加的.*
匹配eventbox1
的所有子项。
答案 1 :(得分:0)
尝试强制GTK以这种方式刷新其待处理的操作:
while gtk.events_pending(): # this forces the refresh
gtk.main_iteration() # of the screen