La ligne w.setBackgroundRole(QPalette.Base)
dans le code ci-dessous n'a aucun effet. Pourquoi? Comment puis-je résoudre ce problème?
import sys
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
w.setBackgroundRole(QPalette.Base)
w.show()
app.exec_()
Vous devez appeler setAutoFillBackground(True)
sur le widget. Par défaut, un QWidget
ne remplit pas son arrière-plan.
Pour plus d'informations, consultez la documentation de la propriété setAutoFillBackground
.
Si vous souhaitez utiliser une couleur d'arrière-plan arbitraire, vous devez modifier la palette du widget à la place:
p = w.palette()
p.setColor(w.backgroundRole(), Qt.red)
w.setPalette(p)