Pergunta

Eu estou tentando obter o construído em StandardPixmaps para mostrar no meu layout.

Até agora tenho conseguido aceder a um padrão pixmap (PyQt4.QtGui.QStyle.SP_MessageBoxWarning), mas parecem incapazes de adicionar, na verdade, isso para o meu layout.Eu tentei adicioná-lo a um QLabel usando o setPixmap método, mas isso requer um pixmap, não standardPixmap.

Eu encontrei esta resposta TÃO, que me levou para o standardPixmaps, mas eu tenho sido incapaz de fazer mais progresso a partir daqui.

Foi útil?

Solução

PyQt4.QtGui.QStyle.SP_MessageBoxWarning é um valor de enumeração não é um pixmap.

A fim de obter um pixmap a partir dele, você poderia dar para o standardPixmap método da corrente utilizada estilo.

Exemplo:

from PyQt4 import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication([])
    label = QtGui.QLabel()
    label.setPixmap(app.style().standardPixmap(QtGui.QStyle.SP_MessageBoxWarning))
    label.show()
    app.exec_()

Infelizmente, o standardPixmap o método é considerado obsoleto agora.O Qt doc aconselha a usar o standardIcon método que retorna um QIcon.

Se você ainda quiser usar um QLabel para exibir o ícone, você tem que construir uma QPixmap do QIcon você recebe.Você pode usar uma de suas pixmap métodos para isso:

from PyQt4 import QtGui

if __name__ == '__main__':
    app = QtGui.QApplication([])
    label = QtGui.QLabel()
    icon =  app.style().standardIcon(QtGui.QStyle.SP_MessageBoxWarning)
    label.setPixmap(icon.pixmap(32))
    label.show()
    app.exec_()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top