Wie setzen QWidget Hintergrundfarbe?
Die Linie w.setBackgroundRole(QPalette.Base)
im untenstehenden code hat keine Wirkung. Warum? Wie behebe ich das?
import sys
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
w.setBackgroundRole(QPalette.Base)
w.show()
app.exec_()
InformationsquelleAutor Johan Råde | 2012-09-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie
setAutoFillBackground(True)
auf das widget. Standardmäßig wird einQWidget
füllt nicht seinen hintergrund.Weitere Informationen finden Sie in der Dokumentation für die
setAutoFillBackground
Eigenschaft.Wenn Sie möchten, verwenden Sie eine beliebige Farbe für den hintergrund müssen Sie zum ändern der widget-palette statt:
Kein problem. Ich sollte hinzufügen, dass die Qt-Dokumentation ist ein bisschen unklar: die
QPalette::Window
Rolle wird verwendet, um füllen Sie ein widget hintergrund, wenn es ein top-level-Fenster. Ansonsten, deine widget -backgroundRole
wird stattdessen verwendet, so sollte Ihr code wie erwartet funktioniert.InformationsquelleAutor jmk