Qt 中的 Q_PROPERTY?

Posted

技术标签:

【中文标题】Qt 中的 Q_PROPERTY?【英文标题】:Q_PROPERTY in Qt? 【发布时间】:2011-01-18 09:09:07 【问题描述】:

我真的不知道为什么我需要它,正在阅读: http://doc.qt.io/qt-4.8/properties.html#requirements-for-declaring-properties

仍然无法真正理解它的用途。 任何形式的帮助都会很棒!

【问题讨论】:

【参考方案1】:

阅读Qt Property System,这就像一个普通的类方法,但它可以与Qt的元对象系统一起使用:

 QPushButton *button = new QPushButton;
 QObject *object = button;

 button->setDown(true);
 object->setProperty("down", true);

这些属性也将在 Qt Designer 下可见,因此您可以创建具有一些属性的自定义小部件并将其连接到 Qt Designer,请参阅this article 了解详细信息。

【讨论】:

值得一提的是,这些属性可以从 QtScript 访问。 也可以通过 CSS 访问属性 对我来说最重要的是在 Designer 中使用自定义小部件作为插件。声明为属性的项目然后显示为通过设计器设置。 第一个链接失效了。我仍然无法理解 Q_PROPERTY 的使用:(【参考方案2】:

属性有助于使用 Qt 的 Meta 对象系统实现 RTTI。

【讨论】:

以上是关于Qt 中的 Q_PROPERTY?的主要内容,如果未能解决你的问题,请参考以下文章

Qt:如何在 C++ 端而不是 QML 上监视 Q_PROPERTY 更改

Qt中Q_PROPERTY定义属性以及属性的使用

在 QML 中使用自定义类中的 Q_PROPERTY

来自 Qt 的 QML 未定义变量

Q_PROPERTY 发出的信号如何被捕获?

Q_PROPERTY 编译错误