Y a-t-il des icônes par défaut dans PyQt/PySide?
je suis en train de lire un tutoriel sur PySide et je me disais , est-ce que je dois trouver mes propres icônes pour chaque chose ou est-ce qu'il y a un moyen d'utiliser certaines icônes intégrées . De cette façon, je n'aurais pas besoin de trouver un ensemble complet de nouvelles icônes si je veux que mon petit gui tourne sur un autre environnement de bureau .
7 réponses
ce qu'il vous faut, C'est Pyside QIcon.fromTheme fonction. Basicaly il crée l'objet QIcon avec l'icône nécessaire du thème système actuel.
Utilisation:
undoicon = QIcon.fromTheme("edit-undo")
"modifier undo" - le nom de l'icône "type" / "Fonction" peut être trouvé ici
cela fonctionne sur les systèmes X11, pour MacOSX et Windows, vérifiez la documentation QIcon QIcon.fromTheme
Edit insérant ceci à partir du site web, depuis la dernière fois qu'il s'agissait d'un lien cassé.
statique PySide.QtGui.QIcon. fromTheme ( name [, fallback=QIcon ()] )
paramètres:
- nom - unicode
- de secours – PySide.QtGui.QIcon
Type de retour:
renvoie le PySide.QtGui.QIcon correspondant au nom dans le thème de l'icône courante. Si aucune icône n'est trouvée dans le thème courant le repli est retourné à la place.
la dernière version de la spécification freesktop icon et de la spécification de nommage peut être obtenue ici:
- http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
- http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
pour récupérer une icône du thème de l'icône courante:
undoicon = QIcon.fromTheme("edit-undo")
ou si vous voulez fournir un repli garanti pour les plates-formes qui ne supportent pas les icônes de thème, vous pouvez utiliser le deuxième argument:
undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png"))
Note
par défaut, seul X11 supporte les icônes thématiques. Afin d'utiliser des icônes thématiques sur Mac et Windows, vous devrez regrouper un thème compatible dans l'un de vos PySide.QtGui.QIcon.themeSearchPaths() et définir les PySide.QtGui.QIcon.themeName () .
Voir aussi
il y a une autre façon d'accéder à certaines icônes standard de PyQt/PySide en utilisant le pixmap standard dans le style par défaut. Par exemple, ce qui suit crée une icône pour ouvrir un fichier:
self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton)
pour la liste complète des pixmaps standard, voir:
Je ne pense pas que ce soit spécifique à une reliure, vous pouvez consulter la documentation générale de qt
j'ai toujours du mal à trouver des images des icônes standard, donc pour référence future: http://nukesaq88.hatenablog.com/entry/2013/04/12/005525
et le code que j'utilise (PyQt4, Pyside probablement similaire):
# In method of QMainWindow subclass
stdicon = self.style().standardIcon
style = QtGui.QStyle
reload_foo = QtGui.QAction(stdicon(style.SP_BrowserReload), '&Reload', self)
Ce serait bien si l' (évidemment, auto-généré) Qt docs avait des photos dans le standardIcons enum table...
dans PyQt5
, voici un exemple simple de création d'un bouton-poussoir avec l'icône play:
play_button = QtGui.QPushButton('Play video')
play_button.setIcon(QtGui.QApplication.style().standardIcon(QtGui.QStyle.SP_MediaPlay))
la documentation Qt5 fournit une liste des icônes possibles SP ("Pixmap Standard"). Voir enum QStyle::StandardPixmap
ici: http://doc.qt.io/qt-5/qstyle.html
un autre exemple de PyQt5 utilisant les icônes standard ( eqzx 'S réponse n'a pas fonctionné pour moi):
from PyQt5.QtWidgets import QApplication, QStyle
from PyQt5.QtGui import QIcon
desktop_icon = QIcon(QApplication.style().standardIcon(QStyle.SP_DesktopIcon)
dans PyQt, l'icône de fenêtre est par défaut le logo Qt. Je pense que vous aurez à trouver vos propres icônes pour les choses à l'intérieur de l'interface graphique.