我有这样的代码,它可以获得linux系统中所有能够打开png文件的程序的列表:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio
app_list = Gio.app_info_get_all_for_type('image/png')
然后我可以通过获得程序的图标
app = app_list[0]
g_icon = app.get_icon()
这将返回<Gio.ThemedIcon object at 0x7f2681640d80 (GThemedIcon at 0x25500a0)>
如何将此Gio.ThemedIcon
对象转换为任何内容(pixbuf、字节等),然后可以用来创建QIcon或QImage?
ThemedIcon具有get_names()
函数,该函数返回可能的主题名称列表。您可以使用静态fromTheme()
在Qt:中获取图标
app = app_list[0]
g_icon = app.get_icon()
for name in g_icon.get_names():
icon = QtGui.QIcon.fromTheme(name)
if not icon.isNull():
break