我想为Raspberry PI 2(Linux / Raspbian)开发相对简单的基于对话框的GUI,这就是为什么要从基本/核心功能开始研究Qt的原因。 RTFM,我知道。所以我read one of them,说实话,很少了解。
答案 0 :(得分:2)
属性用于通过标准通用接口读取/写入对象中的值。需要与脚本引擎(QtScript或QtQml),小部件设计器,远程对象接口(QtDBus,QtRemoteObjects,QtWebChannel)连接。
大多数属性通过普通的getter / setter函数实现,然后将这些函数绑定到属性名称并使用Q_PROPERTY
宏向属性系统注册。或者,属性名称可以绑定到成员变量。使用通用property()
和setProperty()
API的读/写访问权限被重新路由到已注册的getter / setter或已注册的成员变量的调用。
属性信息在课程中存储为QMetaProperty
' staticMetaObject
,通过属性API访问将根据属性名称进行查找。
您的用例似乎不需要使用属性。
Kuba在评论中提到的另一个用例是将数据附加到基于QObject
的对象而不修改它们。
这些属性,即所谓的&#34;动态属性&#34;,处理方式略有不同。它们存储在通用内部存储中,而不是getter / setter函数或成员变量,目前是QVector<QVariant>