12
Q_PROPERTY의 사용법을 이해할 수 없습니다. Q_PROPERTY가 프로그램을 방어하는 데 어떻게 도움이됩니까? 그것은 무엇을 위해 사용됩니까? 나는 포럼을 보았지만 실제로 그 응용을 할 수 없었다. 나는 예제를 이해했지만 사용법은 이해하지 못했다.Qt에서 Q_PROPERTY의 의미는 무엇입니까?
다음은 예제입니다. 무엇을 얻을 수 있습니까? 나는 읽기가 독서의 특권을 줄 것이라는 점을 이해합니다.
쓰기 속성은 쓰기 권한 만 부여합니다. 그러나 그것의 필요성은 무엇입니까? 누군가 그것을 예증 할 수 있습니까?
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;
};
첫 번째 점에 대해서는 우리가 인터페이스를 생성했다면 내성적 일 수 있습니다. 거기에 속성을 지정할 필요가 없습니다. QML과 관련하여 Q_INVOKABLE 또는 SLOT을 선언하면 QML에서 호출 할 수 있습니다. QProperty가 어떻게 영향을 줍니까? 두 번째 요점은 더 많이 할 수 있다는 것에 동의합니다. 셋째, 나는 이해하지 못했다. –
@SHREYASJOSHI : 슬롯은 일반적으로 void 반환 값에 사용됩니다. Q_INVOKABLE은 각 메소드에 대해 쓰기가 지루합니다. 더욱이, 내성 검사는 QML에서 사용하는 것만을위한 것이 아니며, 실제로 수행 할 수 있다고해도 QML에서 실제 속성으로 사용하지 않고 함수 호출로 사용합니다. 그것은 성가시다. 세 번째 요점 : 일반적으로 동일한 상용구 일 때 자신의 getter/setter를 작성하는 것은 의미가 없습니다. Qt 5가 자동 생성합니다. – lpapp
+1은 "Qt 5로 상용구를 작성하고 공통된 읽기 및 쓰기 케이스"*에 대해 알지 못했습니다. 하지만 그걸 기록하는 링크가 있니? (예를 들어 [여기] (http://qt-project.org/doc/qt-5.0/qtcore/properties.html)에 대해서는 아무 것도 찾을 수 없습니다.) – hyde