重点:
1.很多文章写的乱七八糟的,简单易懂的用很多术语解释让人看的头疼。
2.Q_PROPERTY 提供了一种方便的方式来定义和使用 Qt 对象的属性,使得属性在运行时可以更容易地被外部代码查询和修改。
3.主要就是给外部可以直接调用,外部可以不过A.property(...)方法直接调用类的函数。
4.这篇文章非常清晰
链接:QT——Q_PROPERTY属性系统详解_q_property 什么用-CSDN博客
Copy一下代码:
- class MyClass : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(int myProperty READ getMyProperty WRITE setMyProperty NOTIFY myPropertyChanged)
-
- public:
- MyClass(QObject *parent = nullptr) : QObject(parent), m_myProperty(0) {}
-
- int getMyProperty() const { return m_myProperty; }
- void setMyProperty(int value) {
- if (value != m_myProperty) {
- m_myProperty = value;
- emit myPropertyChanged();
- }
- }
-
- signals:
- void myPropertyChanged();
-
- private:
- int m_myProperty;
- };
使用方法:
- MyClass obj;
- obj.setMyProperty(42);
- int value = obj.property("myProperty").toInt();