0

注意:这个问题与 Amazon AppStream 无关。这个问题是针对这个 AppStream的。

您好,我正在为我的 Linux 发行版构建一个软件中心,并且我正在尝试通过 AppStream 获取元数据。但是由于某种原因,当我尝试将 an 转换AppStreamGlib.IconGdkPixbuf.Pixbufusingget_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像它应该的那样。AppStreamGlib.Icon.get_pixbuf 但是使用总是返回将其转换为 PixbufNone

那么,我做错了什么导致get_pixbuf总是返回无?

4

1 回答 1

0

I was able to fix it by running AppStreamGlib.Icon.load(AppStreamGlib.IconLoadFlags.SEARCH_SIZE) before running AppStreamGlib.Icon.get_pixbuf

于 2020-05-22T03:12:00.913 回答