Pygtk: изменить цвет рамки виджета - PullRequest
3 голосов
/ 28 апреля 2011

Я искал повсюду, но никак не мог найти способ изменить цвет границы.Например, мне нужна кнопка, подобная этой:

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

Теперь я хочу покрасить границу в красный цвет (это несуществующий вызов):

gb.set_border_color('red')

Я попробовал gb.modify_bg(...) но это только меняет фон кнопки, а не ГРАНИЦУ, окружающую ее.Самое важное, что я могу получить, это добавить этот GtkButton в GtkFrame и использовать цвет тени рамки.Однако ширина теневого блока фиксирована - это тонкая линия чуть ниже моей желаемой толщины.

Мне интуитивно понятно, что если вы можете изменить ширину границы, вы сможете установить больше стилей для нее.Я открыт для других способов достижения того же эффекта с толстой рамкой, например, для наложения кнопки поверх большого цветного фона?

Спасибо за любую помощь.

1 Ответ

5 голосов
/ 28 апреля 2011

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