私は2つのクラスを持っていTestA
ますTestB
. TestA
伸びQObject
ます。私はそれをいくつかのようにセットアップしましたQ_PROPERTY
。
Q_PROPERTY(QString a_string READ getString WRITE setString)
Q_PROPERTY(int a_int READ getInt WRITE setInt)
もちろん、適切なゲッターとセッターも作成しました。このクラスは問題なく動作します。
2 番目のクラスでTestB
、 を作成したいのでQ_PROPERTY
、TestA
でこれを行いましたtestb.h
。
Q_PROPERTY(TestA testa READ getTestA)
public:
TestA *getTestA();
private:
TestA mTestA;
そして、これはtestb.cpp
.
TestA *TestB::getTestA() {return &mTestA;}
これをコンパイルしようとすると、次のエラー メッセージが表示されます。
moc_testb.cpp: In member function 'virtual int TestB::qt_metacall(QMetaObject::Call, int, void**)':
moc_testb.cpp:75: error: no match for 'operator=' in '*(TestA*)_v = TestB::getTestA()'
../qttest/testa.h:7: note: candidates are: TestA& TestA::operator=(const TestA&)
誰かがこれを修正するために何をする必要があるか教えてもらえますか?