案例1:使用Q_OBJECT创建QWidget的子类并设置样式表 - 没有效果。
案例2:创建没有Q_OBJECT的QWidget的子类并设置样式表 - 按预期工作
案例3:使用Q_OBJECT创建QLabel的子类并设置样式表 - 按预期工作
如何理解这种行为?是否可以使样式表适用于案例1?
答案 0 :(得分:23)
如果您希望自定义QWidget子类支持样式表,则需要提供以下代码: Qt代码:
void myclass::paintEvent(QPaintEvent *pe)
{
QStyleOption o;
o.initFrom(this);
QPainter p(this);
style()->drawPrimitive(
QStyle::PE_Widget, &o, &p, this);
};
由wysota提供,以及Qt帮助。
当您不提供Q_OBJECT时,您的类没有Meta数据,因此被视为QWidget。
答案 1 :(得分:2)
我不知道为什么它们不起作用,但我在Werner Erasmus的答案中将代码翻译成python。以下“适合我”™
print(error + random.choice(errors) + onLin+random.choice(lineNums))