Qual é o significado da propriedade Q no Qt?
Eu não sou capaz de entender o uso de Q_PROPERTY. Como é que a Q_PROPERTY ajuda a tornar um programa defensivo? Para que é utilizado? Eu vi o fórum, mas realmente não sou capaz de fazer o seu aplicaton. Eu entendi o exemplo, mas não é Uso.
Aqui está o exemplo, o que ganho com ele. Sei que a leitura dará apenas o privilégio de ler. A propriedade de escrita dará o privilégio de escrever apenas. Mas qual é a necessidade disso? Alguém pode exemplificar aquilo? 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;
};
16
1 answers
Tem as seguintes vantagens:
Ele está disponível para o meta object system, então ele pode ser introspectado, usado a partir de QML etc.
Ele tem mais opções do que apenas ler e escrever. Olhe para notificar, reiniciar, etc. Também é mais fácil integrá-los no QtCreator (designer).
Você não precisa escrever o boilerplate com o Qt 5.1 em diante em casos comuns de leitura e escrita, porque eles serão gerados para você.
10
Author: lpapp, 2014-02-24 11:57:05