AppStreamGlib.Icon.get_pixbuf()返回None。AppStreamGlib.Icon.get_pixbuf() 返回 None

问题描述 投票:0回答:1

注:本题与Amazon AppStream无关。这个问题是针对 这个AppStream.

你好,我正在为我的Linux发行版建立一个软件中心,我正试图通过AppStream抓取元数据。但是由于某些原因,当我试图转换一个 AppStreamGlib.IconGdkPixbuf.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?

python-3.x gtk3 pygobject freedesktop.org
1个回答
0
投票

我能够通过运行 AppStreamGlib.Icon.load(AppStreamGlib.IconLoadFlags.SEARCH_SIZE) 运转前 AppStreamGlib.Icon.get_pixbuf

© www.soinside.com 2019 - 2024. All rights reserved.