![应用程序自定义库存图标在 ubuntu unity 顶部面板菜单(又名 appmenu)中不起作用(“菜单有图标”开启)](https://linux22.com/image/1037170/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BA%93%E5%AD%98%E5%9B%BE%E6%A0%87%E5%9C%A8%20ubuntu%20unity%20%E9%A1%B6%E9%83%A8%E9%9D%A2%E6%9D%BF%E8%8F%9C%E5%8D%95%EF%BC%88%E5%8F%88%E5%90%8D%20appmenu%EF%BC%89%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%88%E2%80%9C%E8%8F%9C%E5%8D%95%E6%9C%89%E5%9B%BE%E6%A0%87%E2%80%9D%E5%BC%80%E5%90%AF%EF%BC%89.png)
我最近注意到,在 ubuntu unity 中,我的应用程序的顶部菜单没有显示我添加到 gtk 库存的(自定义)图标,而只显示基本的 gtk 库存图标。
这种情况发生只是因为顶部菜单显示在 Unity 顶部面板 (appmenu) 中,而不是在应用程序窗口中。在正确的自定义图标的位置,我看到了“gtk-missing-image”。在我的应用程序工具栏和其他菜单上,这些图标显示正确,问题只出在顶部菜单上。
这发生在 pygtk2 上(例如http://www.giuspen.com/cherrytree/)和 gobject 自省(例如http://www.giuspen.com/nautilus-pyextensions/)我使用 gtk ui manager 集成库存图标后,如下图所示:
factory = gtk.IconFactory()
pixbuf = gtk.gdk.pixbuf_new_from_file(filepath)
iconset = gtk.IconSet(pixbuf)
factory.add(stock_name, iconset)
factory.add_default()
如果有人解决了这个问题请帮忙。谢谢,Giuseppe。
答案1
AppIndicator 框架需要了解图标。为此,它们需要位于主题目录中,或应用程序自定义主题的一部分。您可以使用 添加主题目录app_indicator_set_icon_theme_path()
。这允许应用程序指示器服务知道在哪里查找您的自定义图标。您还可以在位于 的默认图标主题中安装图标/usr/share/themes/hicolor
。
最后,作为一个完全的 hack,你可以即时生成它们。这就是 所做的indicator-multiload
。不推荐这样做,所以我不会链接到它,但如果你需要的话,可以去那里看看。