重点:
1.很多文章写的乱七八糟的,简单易懂的用很多术语解释让人看的头疼。
2.Q_PROPERTY 提供了一种方便的方式来定义和使用 Qt 对象的属性,使得属性在运行时可以更容易地被外部代码查询和修改。
3.主要就是给外部可以直接调用,外部可以不过A.property(...)方法直接调用类的函数。
4.这篇文章非常清晰
链接:QT——Q_PROPERTY属性系统详解_q_property 什么用-优快云博客
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();