擅长:python、mysql、java
<p>我最终决定为我的小部件覆盖paintEvent。在调色板中设置颜色似乎总是将颜色传递给子控件,这不是我想要的。这是一个对我有用的例子。这是一个QFrame,它采用默认背景色,稍微变暗和变绿</p>
<pre><code>class GreenFrame(QFrame):
def __init__(self, parent=None):
super().__init__(parent)
r, g, b, a = self.palette().color(QPalette.Window).toTuple()
self._bgcolor = QColor(r * 7 // 8, g, b * 7 // 8)
def paintEvent(self, event):
painter = QPainter(self)
painter.fillRect(event.rect(), self._bgcolor)
super().paintEvent(event)
</code></pre>