Wie füge ich StandardPixmap zu einem Layout hinzu?
Frage
Ich versuche, das eingebaut zu bekommen StandardPixmapszur Anzeige auf meinem Layout.
Bisher ist es mir gelungen, auf eine Standard-Pixmap zuzugreifen (PyQt4.QtGui.QStyle.SP_MessageBoxWarning
), aber es scheint mir nicht möglich zu sein, dies tatsächlich zu meinem Layout hinzuzufügen.Ich habe versucht, es mit der setPixmap-Methode zu einem QLabel hinzuzufügen, aber dafür ist eine Pixmap erforderlich, keine Standard-Pixmap.
ich habe gefunden diese Antwort auf SO, was mich zu den Standard-Pixmaps führte, aber von hier aus konnte ich keine weiteren Fortschritte erzielen.
Lösung
PyQt4.QtGui.QStyle.SP_MessageBoxWarning
ist ein Aufzählungswert, keine Pixmap.
Um eine Pixmap davon zu erhalten, können Sie diese an den senden standardPixmap
Methode des aktuell verwendeten Stils.
Beispiel:
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_()
Leider ist das standardPixmap
Diese Methode gilt mittlerweile als veraltet.Das Qt-Dokument empfiehlt die Verwendung von standardIcon
Methode, die a zurückgibt QIcon
.
Wenn Sie weiterhin a verwenden möchten QLabel
Um Ihr Symbol anzuzeigen, müssen Sie ein erstellen QPixmap
von dem QIcon
du erhältst.Sie können eines davon verwenden pixmap
Methoden hierfür:
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_()