如何设置 QWidget 背景颜色?
Posted
技术标签:
【中文标题】如何设置 QWidget 背景颜色?【英文标题】:How to set QWidget background color? 【发布时间】:2012-09-21 06:07:32 【问题描述】:下面代码中的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_()
【问题讨论】:
【参考方案1】:您也可以使用setStyleSheet
,例如:
w.setAttribute(Qt.Qt.WA_StyledBackground, True)
w.setStyleSheet('background-color: red;')
【讨论】:
【参考方案2】:您需要在小部件上调用setAutoFillBackground(True)
。默认情况下,QWidget
不会填充其背景。
有关详细信息,请参阅setAutoFillBackground
属性的文档。
如果您想使用任意背景颜色,则需要修改小部件的调色板:
p = w.palette()
p.setColor(w.backgroundRole(), Qt.red)
w.setPalette(p)
【讨论】:
欢迎来到***!感谢您回答“为什么”和“如何”! 没问题。我应该补充一点,Qt 文档有点不清楚:QPalette::Window
角色用于填充小部件的背景(如果它是***窗口)。否则,将使用您的小部件的 backgroundRole
,因此您的代码应该按预期工作。以上是关于如何设置 QWidget 背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章