GTK:创建一个彩色普通按钮

6 投票
1 回答
9933 浏览
提问于 2025-04-15 13:26

我该怎么做呢?很多网站说我只需要在按钮上调用 .modify_bg() 就可以了,但这对我来说没什么用。我可以给按钮加一个事件框,然后在里面放一个标签,再改变它的颜色,但效果看起来很糟糕——按钮边缘有很多灰色的空白区域,这些地方的颜色没有变化。我只想要一个看起来像这样的效果:

img
(来源: kksou.com)

这个网站声称他们只是对按钮使用了 modify_bg(),但我试了之后没效果。=(

正确的解决方案可能涉及创建一个样式,或者用 gtkrc 文件之类的东西。有人能给我指个方向吗?

1 个回答

16

这里有一个简单的例子:

import gtk

win = gtk.Window()
win.connect("destroy", gtk.main_quit)

btn = gtk.Button("test")

#make a gdk.color for red
map = btn.get_colormap() 
color = map.alloc_color("red")

#copy the current style and replace the background
style = btn.get_style().copy()
style.bg[gtk.STATE_NORMAL] = color

#set the button's style to the one you created
btn.set_style(style)

win.add(btn)
win.show_all()

gtk.main()

撰写回答