2012-07-25 20 views
21

Estoy leyendo un tutorial sobre PySide y estaba pensando: ¿necesito encontrar mis propios iconos para cada cosa o hay alguna forma de usar algunos iconos integrados? De esa forma no necesitaría encontrar un nuevo conjunto de íconos si quiero que mi pequeño gui se ejecute en otro entorno de escritorio.¿Hay iconos predeterminados en PyQt/PySide?

Respuesta

32

Lo que necesita es la función Pyside QIcon.fromTheme. Básicamente, crea el objeto QIcon con el icono necesario del tema del sistema actual.

Uso:

undoicon = QIcon.fromTheme("edit-undo")

"editar deshacer" - nombre del icono "tipo"/"función" se puede encontrar here

Esto funciona en sistemas X11, para la comprobación MacOSX y Windows documentación QIcon QIcon.fromTheme

Editar Inserción esto desde la página web, desde la última vez que era un enlace roto

estática PySide.QtGui.QIcon. fromTheme (Nombre [, fallback = QIcon()])

Parámetros:

Tipo de retorno:

PySide.QtGui.QIcon

Devuelve el PySide.QtGui.QIcon correspondiente al nombre en el tema de iconos actual. Si no se encuentra un icono de este tipo en el tema actual, se devuelve .

La última versión de la especificación icono freedesktop y la especificación de nombres se pueden obtener aquí:

en busca de un icono del tema de iconos actual:

undoicon = QIcon.fromTheme("edit-undo") 

O si quieres t o proporcionar un retorno garantizado para plataformas que no son compatibles con los iconos del tema, se puede utilizar el segundo argumento:

undoicon = QIcon.fromTheme("edit-undo", QIcon(":/undo.png")) 

Nota

Por defecto, sólo apoyará X11 iconos de temática. Para utilizar iconos temáticos en Mac y Windows, deberá agrupar un tema compatible en uno de sus PySide.QtGui.QIcon.themeSearchPaths() y establecer el PySide.QtGui.QIcon.themeName() apropiado.

Ver también

+0

D'oh! Estaba tan emocionado de finalmente encontrar una lista de íconos estándar de Qt, pero el segundo vínculo parece estar roto ahora. ¿Alguna actualización? –

+1

@MichaelScheper En caso de que no haya recibido un aviso de que actualicé la respuesta, la respuesta se actualizó con el nuevo enlace junto con el texto asociado. –

0

en PyQt, el icono de la ventana es por predeterminado el logotipo de Qt. Creo que deberás encontrar tus propios íconos para las cosas dentro de la GUI.

5

Hay otra manera de acceder a algunos de los Buil norma iconos de hojalata en PyQt/PySide usando el mapa de píxeles estándar en el estilo predeterminado. Por ejemplo, la siguiente crea un icono para abrir un archivo:

self.style().standardIcon(QtGui.QStyle.SP_DialogOpenButton) 

Para la lista completa de los mapas de píxeles estándar, véase:

http://srinikom.github.io/pyside-docs/PySide/QtGui/QStyle.html#PySide.QtGui.PySide.QtGui.QStyle.StandardPixmap

+0

'self' se refiere a' QtWidgets.QApplication' (en Qt5) o 'QtGui.QApplication' (en Qt4) en caso de que quiera usarlo donde' self' no sea uno de los anteriores. – user136036

2

sigo teniendo problemas para encontrar imágenes de los iconos estándar, por lo que para cualquier consulta: el http://nukesaq88.hatenablog.com/entry/2013/04/12/005525

Y el código que estoy usando (PyQt4, PySide probablemente similar):

# In method of QMainWindow subclass 
    stdicon = self.style().standardIcon 
    style = QtGui.QStyle 
    reload_foo = QtGui.QAction(stdicon(style.SP_BrowserReload), '&Reload', self) 

Sería bueno si (autogenerado obviamente) la Qt docs tenían imágenes de la tabla de enumeración standardIcons ...