¿Cómo configurar el color de fondo QWidget?

La línea w.setBackgroundRole(QPalette.Base) en el código siguiente no tiene efecto. ¿Por qué? ¿Cómo arreglo eso?

 import sys from PySide.QtCore import * from PySide.QtGui import * app = QApplication(sys.argv) w = QWidget() w.setBackgroundRole(QPalette.Base) w.show() app.exec_() 

setAutoFillBackground(True) llamar a setAutoFillBackground(True) en el widget. Por defecto, un QWidget no llena su fondo.

Para obtener más información, consulte la documentación de la propiedad setAutoFillBackground .

Si desea utilizar un color de fondo arbitrario, necesita modificar la paleta del widget en su lugar:

 p = w.palette() p.setColor(w.backgroundRole(), Qt.red) w.setPalette(p)