2009-06-15 14 views
8

Ich schreibe ein Basisprogramm in Python mit dem PyQt4-Modul. Ich möchte in der Lage sein, die Symbole meines Systemthemas für Dinge wie das Symbol des Einstellungsdialogs zu verwenden, aber ich habe keine Ahnung, wie das geht. Meine Frage ist also, wie Sie den Ort eines Symbols erhalten, aber stellen Sie sicher, dass es sich mit dem Icon-Thema des Systems ändert? Wenn es darauf ankommt, entwickle ich das unter Ubuntu 9.04, also benutze ich den Gnome-Desktop.System Theme Icons und PyQt4

Antwort

7

Leider scheint Qt das Abrufen von Symbolen für ein bestimmtes Thema nicht zu unterstützen. Es gibt Möglichkeiten, dies sowohl für KDE als auch für Gnome zu tun.

Der KDE-Weg ist ziemlich elegant, was sinnvoll ist, wenn man bedenkt, dass Qt das KDE-Toolkit ist. Anstatt die PyQt4.QtGui-Klasse QIcon zu verwenden, verwenden Sie stattdessen die PyKDE4.kdeui-Klasse KIcon. Ein Beispiel hierfür ist:

from PyKDE4.kdeui import * 
icon = KIcon("*The Icon Name*") 

die PyKDE Dokumentation für diese Klasse zu sehen, here.

Eine Möglichkeit, dies für Gnome zu unterstützen, ist die Verwendung des python gtk-Pakets. Es ist nicht so schön wie der kde Weg, aber es funktioniert trotzdem. Es kann wie folgt verwendet werden:

from PyQt4 import QtGui 
from gtk import icon_theme_get_default 

iconTheme = icon_theme_get_default() 
iconInfo = iconTheme.lookup_icon("*The Icon Name*", *Int of the icon size*, 0) 
icon = QtGui.QIcon(iconInfo.get_filename()) 

finden Sie in der Dokumentation für die Icon Theme class und Icon Info class.

EDIT: Danke für die Korrektur CesarB

+0

Qt ist das Toolkit von KDE, nicht der Fenstermanager. – CesarB

+3

Die neue Syntax ist 'QIcon.fromTheme ('icon_name', fallback)'. Nahm mich eine Weile, um es zu finden! – Blender

0

verbrachte ich einen angemessenen Betrag dieses von der Erforschung mich nicht lange her, und meine Schlussfolgerung war, dass leider nicht Qt diese Funktionalität nicht bieten in einem Kreuz -Plattform Mode. Idealerweise hätte die QIcon-Klasse Standardwerte für Datei öffnen, Speichern, "+", "-", Voreinstellungen usw., aber in Anbetracht dessen müssen Sie nicht das entsprechende Symbol für Ihre Desktop-Umgebung auswählen.

+0

Ich bin zu demselben Schluss gekommen. Ich werde eine Antwort schreiben, die Methoden für KDE und Gnome enthält. – Cdsboy