以下代码中的行w.setBackgroundRole(QPalette.Base)
无效。为什么?我该如何解决这个问题?
import sys
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication(sys.argv)
w = QWidget()
w.setBackgroundRole(QPalette.Base)
w.show()
app.exec_()
答案 0 :(得分:42)
您需要在小部件上调用setAutoFillBackground(True)
。默认情况下,QWidget
不会填充其背景。
有关详细信息,请参阅setAutoFillBackground
属性的文档。
如果要使用任意背景颜色,则需要修改小部件的调色板:
p = w.palette()
p.setColor(w.backgroundRole(), Qt.red)
w.setPalette(p)
答案 1 :(得分:0)
您也可以使用 setStyleSheet
例如:
w.setAttribute(Qt.Qt.WA_StyledBackground, True)
w.setStyleSheet('background-color: red;')