2010-06-12 3 views
2

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

Я хотел бы быть в состоянии указать на новое изображение для каждого «состояние» кнопка находится в (т.е. Pressed, мыши над, нормально ... и т.д.).

ответ

6

Как описано в the API documentation for gtk.Image, «Если вы хотите получать события на изображении, такие как щелчки на кнопках, поместить изображение внутри gtk.EventBox, а затем подключиться к сигналам событий в окне события. ".

Возможно, вы захотите использовать gtk.Image, а не gtk.Button, так как кнопки требуют большего знания того, как работает тематический движок. Если вы действительно хотите использовать кнопку, вам нужно будет прочитать gtk rc files и API для их управления.

+2

Правильный ответ от Glyph, изображение внутри EventBox, вероятно, является правильным способом. Тем не менее, в общем смысле пользовательский интерфейс, изменение способа, которым пользователь установил кнопки для просмотра (с использованием изменений стиля), по своей сути является плохим. –

+0

Я определенно согласен с этим. – Glyph

1

Вот простой способ использования изображения на кнопке. Обратите внимание, что при инициализации кнопки не указывается текст (self.button1 = gtk.Button()). При добавлении текста вместо изображения будет отображаться текст.

self.image1 = gtk.Image() 
    self.image1.set_from_file('images/home.png') 
    self.image1.show() 
    self.button1 = gtk.Button() 
    self.button1.add(self.image1) 
    self.button1.show() 
    self.backupHBox.pack_start(self.button1, True, True) 
    self.button1.connect("clicked", self.quit)