案例1:使用Q_OBJECT创建QWidget的子类并设置样式表 - 没有效果.
案例2:创建没有Q_OBJECT的QWidget的子类并设置样式表 - 按预期工作
案例3:使用Q_OBJECT创建QLabel的子类并设置样式表 - 按预期工作
如何理解这种行为?是否有可能使样式表在案例1中起作用?
Wer*_*mus 23
如果您希望自定义QWidget子类支持样式表,则需要提供以下代码:Qt代码:
void myclass::paintEvent(QPaintEvent *pe)
{
QStyleOption o;
o.initFrom(this);
QPainter p(this);
style()->drawPrimitive(
QStyle::PE_Widget, &o, &p, this);
};
Run Code Online (Sandbox Code Playgroud)
礼貌的wysota,以及Qt的帮助.
当您不提供Q_OBJECT时,您的类没有Meta数据,因此被视为QWidget.
我不知道为什么它们不起作用,但我将 Werner Erasmus 的答案中的代码翻译为 python。以下“对我有用”\xe2\x84\xa2
\n\ndef paintEvent(self, pe):\n\n o = QStyleOption()\n o.initFrom(self)\n p = QPainter(self)\n self.style().drawPrimitive(QStyle.PE_Widget, o, p, self)\nRun Code Online (Sandbox Code Playgroud)\n