6
我在寫一個QML + Qt應用程序。 予定義的類是這樣的:如何將C++模型公開到QML
class MainClass : public QObject
{
Q_OBJECT
public:
rosterItemModel m_rosterItemModel;
.
.
.
}
rosterItemModel模型是從QAbstractListModel派生的類。 我暴露MainClass使用此功能QML部分:
qmlRegisterType<MainClass>("CPPIntegrate", 1, 0, "MainClass");
現在我想從分配這個MainClass模型(m_rosterItemModel)模型在QML一個ListView的財產。 我嘗試以下方法,但他們都不是有幫助:(
- 我想聲明m_rosterItemModel作爲使用Q_PROPERTY的屬性。 我不能這樣做,因爲它說,QAbstractListModel不是 複製能力。
- 我試着使用MainClass一個 Q_INVOKABLE函數來獲得一個指向m_rosterItemModel在QML文件,但它不是也有幫助。
有人能幫助我嗎?
我使用qmlRegisterType在註冊MainClass到QML爲了在QML中輕鬆使用MainClass信號和插槽,可以通過創建MainClass {id:mc}這樣的實例來實現。無論如何。謝謝你:) – saeed 2012-08-04 07:05:56
從經驗看來,在第二種情況下在necassary註冊了模型類:'qmlRegisterType(「CPPIntegrate」,1,0,「MainClass」);'另外,使用'const'修改器似乎打破了互操作。最後一個古怪的位是在頭的Q_PROPERTY和Q_INVOKABLE聲明中始終引用具有完整名稱空間限定的類。此外,如果有人試圖返回一些基類(如QAbstractItemModel)指針,互操作性將再次失敗,所以要小心。 –
mlvljr
2012-08-05 15:07:44
如何獲取mainClassInstance? – Brent81 2013-02-23 14:39:10