0
我試圖建立了樹視圖模型(我的模型類從化QAbstractItemModel繼承)TreeView的QML錯誤 - 的QVariant ::的QVariant(無效*)」是私人在此背景下
CardsTreeModel * myModel=new CardsTreeModel(file.readAll());
QObject * pTree = m_pQmlObject->findChild<QObject*>("cardsTreeView");
pTree->setProperty("model", myModel);
而且得到這樣的錯誤:
qvariant.h:465: error: 'QVariant::QVariant(void*)' is private
inline QVariant(void *) Q_DECL_EQ_DELETE;
cardchoice.cpp:27: error: within this context
pTree->setProperty("model", myModel);
^
請幫我解決這個問題!
'setProperty'將'QVariant'作爲其第二個參數。你正在傳遞'CardsTreeModel *',它不能被隱式轉換爲'QVariant'。你可以寫'QVariant :: fromValue(myModel)'。目前還不清楚你試圖達到什麼目標。你似乎認爲「模型」是一些特殊的屬性名稱,並賦予它實現一些神奇的效果。 –
我在這樣的例子中以這種方式成功地設置了模型:QObject * pList = m_pQmlObject-> findChild(「devicesList」); \t m_strListView.append(「device」); \t pList-> setProperty(「model」,m_strListView); –
Mira
'QVariant'具有'QStringList'構造函數,這就是我想象的'm_strListView'。無論如何,你可能想要的東西就像'qobject_cast(pTree) - > setModel(myModel);' –