我无法理解 Q_PROPERTY 的用法。 Q_PROPERTY 如何帮助使程序具有防御性?它是干什么用的?我看过论坛,但真的无法申请。我已经理解了这个例子,但不是它的用法。
这是一个例子,我从中获得了什么。我知道 read 将赋予只读权限。
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;
};
最佳答案
具有以下优点:
它可用于元对象系统,因此可以自省(introspection),从QML等中使用。
除了读写之外,它还有更多的选择。看notify、reset等,集成到QtCreator中也比较容易(设计师)。
在常见的读写案例中,您不需要编写带有 Qt 5.1 及更高版本的样板,因为它们会为您生成。
关于c++ - Qt中Q_PROPERTY的意义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21965777/