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以后编写样板,因为它们将为您生成.