gpt4 book ai didi

qt - 为什么在继承 QWidget 和使用 Q_OBJECT 时样式表不起作用?

转载 作者:行者123 更新时间:2023-12-03 23:21:54 28 4
gpt4 key购买 nike

案例 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/

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