PyGTK установить значок окна с изображением - PullRequest
6 голосов
/ 21 апреля 2011

Мне кажется, это должно быть довольно просто, но я думаю, что что-то упустил.

Поэтому я хочу установить значок окна с одним из изображений.Я попытался:

windowIcon = gtk.image_new_form_stock(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowIcon.get_pixbuf())

Python затем жалуется, что:

Файл "./sample.py", строка 44, в init window.set_icon (windowIcon.get_pixbuf ())ЗначениеError: изображение должно быть GdkPixbuf или пустымGdkPixbuf или None

В документации pygtk говорится:

Если тип хранения образа не gtk.IMAGE_EMPTY или gtk.IMAGE_PIXBUF, исключение ValueErrorбыть поднятым.

Так что я предполагаю, что тип хранения изображения неправильный.Вопрос в том, как обойти это?

Ответы [ 2 ]

4 голосов
/ 22 апреля 2011

Вы можете использовать метод .render_icon () в любом GtkWidget для предоставления элемента товара в качестве значка.

windowicon = window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowicon)
2 голосов
/ 19 января 2016

Метод render_icon() работает, как указано выше. У вашего кода были проблемы, потому что метод get_pixbuf() возвращал None. Это потому, что изображение не было создано из pixbuf, и по какой-то причине оно не будет преобразовано. Другой способ получить pixbuf из изображения - использовать функцию gtk.gdk.pixbuf_new_from_image().

...