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
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
Verwenden Sie die PyKDE4 kicon Klasse:
Danke für die Antwort :) Obwohl ich etwas möchte, die weniger auf KDE abhängig war, werde ich dies als Antwort akzeptieren, bis etwas um besser geht. – Cdsboy
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.
Ich bin zu demselben Schluss gekommen. Ich werde eine Antwort schreiben, die Methoden für KDE und Gnome enthält. – Cdsboy
- 1. Hole Icons von meinem System
- 2. CSS Theme System in Wicket
- 3. Wie bekomme ich System-Icons in iOS
- 4. Wie kann ich System-Icons in meiner Android-App verwenden?
- 5. Wie bekomme ich Mac-System-Icons, wie im Finder?
- 6. Kann man System-Icons auf Tabs in Xamarin Forms verwenden?
- 7. PyQt4 QPushButton Text- und Symbolausrichtung
- 8. Wie bekomme ich Koordinaten von QToolBar Icons in der PyQt4 Anwendung?
- 9. PyQt4: Datenbindung?
- 10. PyQt4: Unterschied zwischen QtCore.QCoreApplication.instance(). Quit und self.close?
- 11. PyQt4: Kombinieren Textchanged und editingFinished für QLineEdit
- 12. PyQT4: Dateien in QListWidget ziehen und ablegen
- 13. Drupal Theme-Dateien außerhalb des Theme-Ordners
- 14. Mehrere Fenster in PyQt4?
- 15. PyQt4 - Drag and Drop
- 16. PyQt4 setParent vs deleteLater
- 17. PyQt4 Dateiauswahl-Widget
- 18. PyQt4 globale Verknüpfungen?
- 19. PyQt4 - Erstellen eines Timers
- 20. Python: PyQt4 Py2exe
- 21. PyQt4 prüfbare Verzeichnisansicht
- 22. Window Icon von Exe in PyQt4
- 23. Core-Dump mit PyQt4
- 24. Ressourcendatei in PyQt4
- 25. Mit Icons mit twitter Bootstrap und assetic
- 26. jQuery toggeln und individuelle Icons hinzufügen
- 27. JTextPane Line Count einschließlich Icons und Komponenten
- 28. jQuery UI und Bootstrap Theme Collision
- 29. Wie installiert man PyQt4 in Anakonda?
- 30. System und in Java
Qt ist das Toolkit von KDE, nicht der Fenstermanager. – CesarB
Die neue Syntax ist 'QIcon.fromTheme ('icon_name', fallback)'. Nahm mich eine Weile, um es zu finden! – Blender