PyGTK设置图标的窗口与库存图像



我觉得这应该是相当简单的,但我想我错过了一些东西。

所以我想用一个库存图像设置一个窗口的图标。我试过了:

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 ())
ValueError:图像应该是GdkPixbuf或空

我尝试将gtkImage转换为GdkPixbuf因为当我不这样做时,python抱怨

TypeError: icon应该是GdkPixbuf或None

pygtk文档中说:

如果映像的存储类型不是gtk。IMAGE_EMPTY或gtk。IMAGE_PIXBUF将引发ValueError异常。

所以我猜库存图像的存储类型是错误的。问题是我该如何解决这个问题?

您可以在任何GtkWidget上使用.render_icon()方法来提供一个股票项目作为图标。

windowicon = window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowicon)

render_icon()方法的工作原理如上所述。您的代码有问题,因为get_pixbuf()方法返回None。这是因为映像不是从pixbuf创建的,并且由于某种原因,它不会转换它。从图像中获取pixbuf的另一种方法是使用gtk.gdk.pixbuf_new_from_image()函数。

相关内容

  • 没有找到相关文章

最新更新