我无法理解Q_PROPERTY的用法。 Q_PROPERTY如何帮助使程序防御?它是干什么用的?我见过论坛,但真的无法进行论坛。我已经理解了这个例子,但不是它的用法。
这是一个例子,我从中获得了什么。我知道阅读会给予阅读权限。
write属性将赋予仅写入权限。但它有什么需要呢?有人可以举例说明吗?
class MyClass : public QObject
{
Q_OBJECT
Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
Q_ENUMS(Priority)
public:
MyClass(QObject *parent = 0);
~MyClass();
enum Priority { High, Low, VeryHigh, VeryLow };
void setPriority(Priority priority)
{
m_priority = priority;
emit priorityChanged(priority);
}
Priority priority() const
{ return m_priority; }
signals:
void priorityChanged(Priority);
private:
Priority m_priority;
};
答案 0 :(得分:11)
它具有以下优点:
它可用于元对象系统,因此可以进行内省,使用QML等。
它还有其他选择,而不仅仅是读写。查看通知,重置等。将它们集成到QtCreator(设计师)中也更容易。
您不需要在常见的读写案例中编写带有Qt 5.1的样板文件,因为它们将为您生成。