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

Eri*_*hen 3 gtk pygtk border colors shadow

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

gb = gtk.Button("Hi")
gb.set_border_width(50)
Run Code Online (Sandbox Code Playgroud)

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

gb.set_border_color('red')
Run Code Online (Sandbox Code Playgroud)

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

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

感谢您的帮助.

bar*_*ddu 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)
Run Code Online (Sandbox Code Playgroud)