Comment puis-je obtenir les chaînes que je peux insérer à la place de 'gtk-execute'?
#!/usr/bin/python
import gobject
import gtk
import appindicator
if __== "__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()
Mon réponse ci-dessous le fait à peu près. Néanmoins, il serait bien d’avoir du code python contenant toutes les icônes disponibles.
Facile:
_import gtk
icon_theme = gtk.icon_theme_get_default()
print icon_theme.list_icons()
_
La sortie est un tuple de tous les noms d'icônes:
_('input-gaming', 'gnome-aorta', 'stock_bottom', 'config-language', ...)
_
Voir aussi: gtk.IconTheme.list_icons dans les documents pygtk
Si vous souhaitez obtenir votre icône en tant que GtkPixbuf , vous pouvez utiliser la méthode load_icon
:
_>>> icon_theme.load_icon("gtk-execute", 48, 0)
<gtk.gdk.Pixbuf object at 0xb737443c (GdkPixbuf at 0x907bf38)>
_
Si vous voulez plutôt un nom de fichier , vous pouvez utiliser la méthode lookup_icon
:
_>>> icon_theme.lookup_icon("gtk-execute", 48, 0).get_filename()
/usr/share/icons/Humanity/actions/48/gtk-execute.svg
_
Où _48
_ est la taille de l'icône souhaitée (voir aussi: get_icon_sizes
).
Il s’ensuit des noms d’icône habituels, qui, autant que je sache, commenceront par votre thème et continueront ensuite à s’effondrer jusqu’à ce qu’ils correspondent au nom.
Prenons l'exemple du thème d'icônes Faenza que j'utilise actuellement.
Dans /usr/share/icons/Faenza/index.theme
il est écrit (coupé)
[Icon Theme]
Name=Faenza
Inherits=gnome,hicolor
Comment=Icon theme project with tilish style, by Tiheum
Directories=actions/16,animations/16,apps/16,categories/16,devices/16,emblems/16,mimetypes/16,places/16,status/16,stock/16,actions/22,animations/22,apps/22,categories/22,devices/22,emblems/22,mimetypes/22,places/22,status/22,stock/22,actions/24,animations/24,apps/24,categories/24,devices/24,emblems/24,mimetypes/24,places/24,status/24,stock/24,actions/32,animations/32,apps/32,categories/32,devices/32,emblems/32,mimetypes/32,places/32,status/32,stock/32,actions/48,animations/48,apps/48,categories/48,devices/48,emblems/48,mimetypes/48,places/48,status/48,stock/48,actions/scalable,apps/scalable,categories/scalable,devices/scalable,emblems/scalable,mimetypes/scalable,places/scalable,status/scalable,stock/scalable
Remarquez la ligne Inherits=...
? Ce sont les "solutions de rechange" de Faenza au cas où il ne possède pas l'icône elle-même.
Ceci est pertinent pour votre question, car vous pouvez entrer un nom pour une icône. Cette icône sera d'abord recherchée dans /usr/share/icons/YOURICONTHEME/
. Au cas où il ne le trouverait pas, il vérifierait les replis (dans ce cas, /usr/share/icons/gnome/
et /usr/share/icons/hicolor/
). Vous constaterez que la plupart des thèmes d'icônes (Ubuntu) héritent de gnome
et/ou hicolor
. Par conséquent, si vous utilisez le nom d'une icône dans ces dossiers, vous pouvez être assuré que chaque thème s'affiche. une icône.
Réponse sans vergogne : http://gtk2-Perl.sourceforge.net/doc/pod/Gtk2/Stock.html
Edit : Non, pas vraiment. Faux réponse incomplète. Par exemple, "indicateur-messages" n'est pas inclus dans cette liste.
Mise à jour : Dans le dossier /usr/share/icons/MYTHEME
où MYTHEME
indique que le nom du thème utilisé doit être constitué des icônes. Est-ce que tester maintenant.
Update2 : Oui, toutes les icônes du dossier susmentionné fonctionnent! Et les thèmes ont des solutions de rechange pour les éléments non trouvés. Ceux de gtk-stock mentionnés dans le lien plus tôt sont issus des solutions de repli. Ce serait bien d'avoir du code python qui affiche toutes les icônes disponibles. Un tarif est bon en utilisant uniquement les éléments standard de gtk-stock et le thème par défaut, car la présence des autres dépend du thème que l'utilisateur utilise au moment de l'exécution.