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.

War es hilfreich?

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_()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top