Como faço para adicionar StandardPixmap para um layout?
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.
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_()