如何在我的图标主题中获取名称以与 pythons appindicator 模块一起使用?

con*_*use 4 indicator themes icons python application-development

如何获取可以插入的字符串而不是“gtk-execute”?

#!/usr/bin/python

import gobject
import gtk
import appindicator

if __name__ == "__main__":
    ind = appindicator.Indicator("example-simple-client", "gtk-execute",
        appindicator.CATEGORY_APPLICATION_STATUS)
    ind.set_status (appindicator.STATUS_ACTIVE)

    menu = gtk.Menu()

    for i in range(3):
        buf = "Test-undermenu - %d" % i
        menu_items = gtk.MenuItem(buf)
        menu.append(menu_items)
        menu_items.connect("activate", gtk.main_quit)
        menu_items.show()

    ind.set_menu(menu)
    gtk.main()
Run Code Online (Sandbox Code Playgroud)

在下面的回答几乎可以做到。不过,如果有一些 Python 代码可以显示所有可用的图标,那就太好了。

Ste*_*zzo 13

简单的:

import gtk

icon_theme = gtk.icon_theme_get_default()
print icon_theme.list_icons()
Run Code Online (Sandbox Code Playgroud)

其输出是所有图标名称的元组:

('input-gaming', 'gnome-aorta', 'stock_bottom', 'config-language', ...) 
Run Code Online (Sandbox Code Playgroud)

另请参阅:pygtk 文档中的gtk.IconTheme.list_icons

如果您想将图标设为GtkPixbuf,可以使用以下load_icon方法:

>>> icon_theme.load_icon("gtk-execute", 48, 0)
<gtk.gdk.Pixbuf object at 0xb737443c (GdkPixbuf at 0x907bf38)>
Run Code Online (Sandbox Code Playgroud)

如果你想要一个文件名,你可以使用以下lookup_icon方法:

>>> icon_theme.lookup_icon("gtk-execute", 48, 0).get_filename()
/usr/share/icons/Humanity/actions/48/gtk-execute.svg
Run Code Online (Sandbox Code Playgroud)

48所需图标的大小在哪里(另请参阅:)get_icon_sizes