如何解决如何将 Q_PROPERTY 与静态类成员一起使用
我是 Qt 的新手,遇到了 Q_PROPERTY 类,并试图使用它设置静态成员。这是我目前所拥有的:
class test{
Q_OBJECT
Q_PROPERTY(bool enabled READ enabled WRITE setEnabled)
public:
bool enabled() const{
return m_enabled;
}
void setEnabled(bool enable){
m_enabled = enable;
}
private:
static bool m_enabled;
};
当我尝试运行它时遇到编译错误,所以我不确定是否有办法将静态成员与 Q_PROPERTY 一起使用。我已经阅读了他们的文档和其他论坛回复,但我仍然不清楚使用 Q_PROPERTY 的目的。
解决方法
将静态成员与 Q_PROPERTY
一起使用没有什么特别之处。您提供的代码有两个问题:
- 您的
test
类不是从QObject
派生的。改成这样:
class test: public QObject
- 在您的 .cpp 文件中,您需要定义静态变量的实例。这适用于任何静态成员,而不仅仅是
Q_PROPERTY
。所以在 test.cpp 中,添加:
bool test::m_enabled = false;
有了这些更改,它应该可以正常编译。
,您的类将需要从 QObject
继承才能使用诸如 Q_PROPERTY
(class test : public QObject
) 之类的东西。
Q_PROPERTY
用于声明可以与 Qt 的元对象系统互操作的属性。例如,您可以通过属性的字符串名称来设置属性,可以通过 QML 与属性进行交互,可以使用 QPropertyAnimation
为属性设置动画,并且可以使用 Q_PROPERTY
定义将显示的属性在诸如 Qt Designer 之类的编辑器中。通常,标准 C++/Qt 应用程序不需要 Q_PROPERTY
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。