情况1:使用Q_OBJECT创建QWidget的子类并设置样式表-无效。
情况2:在没有Q_OBJECT的情况下创建QWidget的子类并设置样式表-按预期工作
情况3:使用Q_OBJECT创建QLabel的子类并设置样式表-按预期工作
如何理解这种行为?是否可以在情况1中使用样式表?
最佳答案
如果希望自定义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时,您的类没有元数据,因此被视为QWidget。
关于qt - 子类化QWidget和使用Q_OBJECT时,为什么样式表不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18344135/