gpt4 book ai didi

css - 使用 css 类和 setProperty() 无法更改 QWidget 的背景颜色

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:58 24 4
gpt4 key购买 nike

在 QWidget 的子类中:

class MainWidget(QtGui.QWidget):

def __init__(self, *args):
QtGui.QWidget.__init__(self, *args)
...
self.setStyleSheet(stylesheet)

在这个 css 下工作得很好:

QWidget {
background-color: black;
}

但添加这个:

self.setStyleSheet(stylesheet)
self.setProperty('class', 'main')

并将 css 更改为:

QWidget.main {
background-color: black;
}

完全没有效果。我错过了什么? setProperty 对其他对象的作用就像一个魅力。

最佳答案

如果您从 QWidget 继承自定义小部件,那么为了使用样式表,您需要为自定义小部件提供一个 paintEvent。参见 this page .

因此,将以下方法添加到您的 MainWidget 类中:

def paintEvent(self, event):
"Reimplementation of paintEvent to allow for style sheets"
opt = QtGui.QStyleOption()
opt.initFrom(self)
painter = QtGui.QPainter(self)
self.style().drawPrimitive(QtGui.QStyle.PE_Widget, opt, painter, self)
painter.end()

关于css - 使用 css 类和 setProperty() 无法更改 QWidget 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com