Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Colors Pygtk:更改小部件';s边框颜色_Colors_Gtk_Pygtk_Border_Shadow - Fatal编程技术网

Colors Pygtk:更改小部件';s边框颜色

Colors Pygtk:更改小部件';s边框颜色,colors,gtk,pygtk,border,shadow,Colors,Gtk,Pygtk,Border,Shadow,我到处找了,但似乎找不到改变边界颜色的方法。 例如,我需要这样一个按钮: gb = gtk.Button("Hi") gb.set_border_width(50) 现在我想将边框涂成红色(这是一个不存在的调用): 我尝试了gb.modify_bg(…),但它只更改按钮的背景,而不更改按钮周围的边框。我能得到的是将这个GTK按钮添加到GTK框架中,并使用框架的阴影颜色。然而,阴影框的宽度是固定的——它是一条比我想要的厚度小得多的细线 这对我来说很直观,如果你能改变边框的宽度,你应该能在上面设置

我到处找了,但似乎找不到改变边界颜色的方法。 例如,我需要这样一个按钮:

gb = gtk.Button("Hi")
gb.set_border_width(50)
现在我想将边框涂成红色(这是一个不存在的调用):

我尝试了gb.modify_bg(…),但它只更改按钮的背景,而不更改按钮周围的边框。我能得到的是将这个GTK按钮添加到GTK框架中,并使用框架的阴影颜色。然而,阴影框的宽度是固定的——它是一条比我想要的厚度小得多的细线

这对我来说很直观,如果你能改变边框的宽度,你应该能在上面设置更多的样式。我愿意用其他方法来实现同样的浓色边框效果,比如把按钮放在一些大的彩色背景上


感谢您的帮助。

AFAIR,gtk。按钮边框处理取决于引擎。如果不想弄乱样式,可以创建gtk.EventBox,设置其背景色,打包按钮,然后将按钮周围的空白量设置为所需值:

button = gtk.Button("Click me")
button.set_border_width(50)
eb = gtk.EventBox()
eb.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("pink"))
eb.add(button)

我认为这是主题的工作,而不是代码。由于用户可能会使用一个主题,即按钮的边框是渐变色(从一种颜色到另一种颜色),并且您将用一种颜色覆盖按钮(边框)的该部分,这可能会使其变得丑陋!如果可能的话,我认为这不是一个好主意。你能提供一个改变边框颜色的主题示例吗?我找不到相关的gtkrc样式。谢谢。@ilius:是的,这是主题的工作,但在某些情况下,您可能需要明确定义它。这确实解决了我原来的问题!我很好奇我会如何搞乱样式来给按钮边框上色。你有一个工作示例风格吗?谢谢@e_x_p:不,我很久以前就停止重写主题样式了:)您可能想查看“4.主题、字体和样式”一节,它有一些示例可以让您有所了解。
button = gtk.Button("Click me")
button.set_border_width(50)
eb = gtk.EventBox()
eb.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse("pink"))
eb.add(button)