Qt中Q_PROPERTY有什么意义?

dex*_*ous 18 c++ qt qobject qt-signals qproperty

我无法理解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;
 };
Run Code Online (Sandbox Code Playgroud)

lpa*_*app 11

它具有以下优点:

  • 它可用于元对象系统,因此可以进行内省,使用QML等.

  • 它还有其他选择,而不仅仅是读写.查看通知,重置等.将它们集成到QtCreator(设计器)中也更容易.

  • 在常见的读写情况下,您不需要在Qt 5.1以后编写样板,因为它们将为您生成.

  • +*for*"不需要在常见的读写案例中用Qt 5编写样板"*,不知道它.但是你有记录的链接吗?(我在这里找不到任何相关内容[这里](http://qt-project.org/doc/qt-5.0/qtcore/properties.html).) (3认同)