注:本题与Amazon AppStream无关。这个问题是针对 这个AppStream.
你好,我正在为我的Linux发行版建立一个软件中心,我正试图通过AppStream抓取元数据。但是由于某些原因,当我试图转换一个 AppStreamGlib.Icon
到 GdkPixbuf.Pixbuf
使用 get_pixbuf()
它只是返回None。
我正在生成一个 AppStreamGlib.Store
并创建一个字典来保存所有元数据。
for app in self.store.get_apps():
if app.get_pkgname_default() != None and self.items["apps"].get(app.get_pkgname_default()) == None:
self.items["apps"][app.get_pkgname_default()] = {}
self.items["apps"][app.get_pkgname_default()]["name"] = app.get_name()
self.items["apps"][app.get_pkgname_default()]["description"] = app.get_description()
self.items["apps"][app.get_pkgname_default()]["comment"] = app.get_comment()
self.items["apps"][app.get_pkgname_default()]["categories"] = app.get_categories()
self.items["apps"][app.get_pkgname_default()]["developer"] = app.get_developer_name()
self.items["apps"][app.get_pkgname_default()]["icon"] = app.get_icon_for_size(64, 64)
if self.items["apps"][app.get_pkgname_default()]["icon"] != None:
self.pixbuf = self.items["apps"][app.get_pkgname_default()]["icon"].get_pixbuf()
print(self.items["apps"][app.get_pkgname_default()]["icon"], self.pixbuf)
self.items["apps"][app.get_pkgname_default()]["screenshots"] = app.get_screenshots()
self.items["apps"][app.get_pkgname_default()]["license"] = app.get_project_license()
self.items["apps"][app.get_pkgname_default()]["mimetypes"] = app.get_mimetypes()
self.items["apps"][app.get_pkgname_default()]["keywords"] = app.get_keywords()
self.items["apps"][app.get_pkgname_default()]["suggests"] = app.get_suggests()
self.items["apps"][app.get_pkgname_default()]["homepage"] = app.get_url_item(As.UrlKind.HOMEPAGE)
self.items["apps"][app.get_pkgname_default()]["donate"] = app.get_url_item(As.UrlKind.DONATION)
当运行这个。self.items["apps"][app.get_pkgname_default()]["icon"]
始终是 AppStreamGlib.Icon
像它应该是。但用下面的方法将其转换为Pixbuf AppStreamGlib.Icon.get_pixbuf
总是返回 None
那么,我到底做错了什么?get_pixbuf
总是返回 None?
我能够通过运行 AppStreamGlib.Icon.load(AppStreamGlib.IconLoadFlags.SEARCH_SIZE)
运转前 AppStreamGlib.Icon.get_pixbuf