我在
GtkImage documentation
:
如果文件未能成功加载,则该图像将包含一个“断开的图像”图标,类似于许多Web浏览器中使用的图标。如果要自己处理加载文件时的错误,例如通过显示错误消息,则使用gdk_pixbuf_new_from_file(),然后使用gtk_image_new_from_pixbuf()创建gtkimage。
不过,在我的情况下,我实际上需要使用gtkicontheme来获得pixbuf而不是
gdk_pixbuf_new_from_file
:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio
win = Gtk.Window()
win.connect('destroy', Gtk.main_quit)
def load_icon(icon):
info = Gtk.IconTheme.get_default().lookup_by_gicon(icon, 48, Gtk.IconLookupFlags.FORCE_SIZE)
if info:
return info.load_icon()
icon = Gio.Icon.new_for_string('gnome-garbage')
fallback_icon = Gio.Icon.new_for_string('folder')
pixbuf = load_icon(icon) or load_icon(fallback_icon)
image = Gtk.Image.new_from_pixbuf(pixbuf)
win.add(image)
win.show_all()
Gtk.main()