GTK: создать цветную обычную кнопку - PullRequest
5 голосов
/ 06 августа 2009

Как мне это сделать? Многие сайты говорят, что я могу просто вызвать .modify_bg () на кнопке, но это ничего не делает. Я могу добавить EventBox к кнопке, добавить к ней метку и затем изменить ее цвет, но это выглядит ужасно - между краем кнопки есть тонна серого пространства, которое не меняется. Я просто хочу что-то похожее на это:

img
(источник: kksou.com )

Сайт утверждает, что только что сделал modify_bg () для кнопки. Но это не работает для меня. = (.

Правильный ответ, вероятно, включает создание стиля или что-то с помощью файла gtkrc и т. Д. Может ли кто-нибудь указать мне в этом направлении?

1 Ответ

16 голосов
/ 07 августа 2009

Вот небольшой пример:

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()
...