PyGTK 设置窗口图标与库存图片

发布于 2024-11-02 10:51:17 字数 699 浏览 2 评论 0原文

我觉得这应该很简单,但我想我错过了一些东西。

所以我想用其中一张库存图像设置窗口的图标。我尝试过:

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 抱怨时

类型错误:图标应该是 GdkPixbuf 或 None

在 pygtk 文档中它说:

如果图像的存储类型不是 gtk.IMAGE_EMPTY 或 gtk.IMAGE_PIXBUF,则会引发 ValueError 异常。

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

I feel like this should be pretty simple, but I guess I am missing something.

So I want to set the icon of a window with one of the stock images. I have tried:

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

Python then complains that:

File "./sample.py", line 44, in init
window.set_icon(windowIcon.get_pixbuf())
ValueError: image should be a GdkPixbuf or empty

I try to convert the gtkImage to a GdkPixbuf because when I didn't python complained that

TypeError: icon should be a GdkPixbuf or None

In the pygtk documentation it says:

If the storage type of the image is not either gtk.IMAGE_EMPTY or gtk.IMAGE_PIXBUF the ValueError exception will be raised.

So I guessing that storage type of the stock image is wrong. The question is how to I get around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜是你 2024-11-09 10:51:17

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

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

You can use the .render_icon() method on any GtkWidget to provide a stock item as the icon.

windowicon = window.render_icon(gtk.STOCK_DIALOG_AUTHENTICATION, gtk.ICON_SIZE_MENU)
window.set_icon(windowicon)
用心笑 2024-11-09 10:51:17

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

The render_icon() method works as given above. Your code was having problems, because the get_pixbuf() method was returning None. This is because the image was not created from a pixbuf, and for some reason, it won't convert it. Another way of getting a pixbuf from an image is to use the gtk.gdk.pixbuf_new_from_image() function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文