Pygtk:更改小部件的边框颜色

时间:2011-04-28 00:00:06

标签: colors gtk pygtk border shadow

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

gb = gtk.Button("Hi")
gb.set_border_width(50)

现在我希望将边框涂上红色(这是一个不存在的调用):

gb.set_border_color('red')

我尝试了gb.modify_bg(...)但它只改变了按钮的背景,而不是它周围的BORDER。我可以获得的壁橱是将这个GtkButton添加到GtkFrame中,并使用框架的阴影颜色。但是阴影框的宽度是固定的 - 它比我想要的厚度还要薄。

我很直观,如果你可以改变边框的宽度,你应该可以在它上面设置更多的样式。我愿意采用其他方法来实现相同的粗色边框效果,例如将按钮放在一些大的彩色背景上?

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

AFAIR,gtk.Button边界处理依赖于引擎。如果您不想搞乱样式,可以创建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)