@7e1e2e749060 不知道你解決了這個(gè)問(wèn)題沒(méi)有,但是我發(fā)現(xiàn)這個(gè)是初始化的問(wèn)題,其他不用動(dòng),把engine.rootContext()->setContextProperty("modelMgr", modelMgr);改為
engine.rootContext()->setContextProperty("modelMgr", modelMgr->objectModel());
即可完美解決,我個(gè)人認(rèn)為setContextProperty第二個(gè)參數(shù)是傳遞modelMgr的指針,官方則是直接傳ObjectModel*進(jìn)去,qml里的model就會(huì)引用ObjectModel*指向的內(nèi)容,所以作者初始化setContextProperty時(shí)其實(shí)是傳遞了modelMgr所指的內(nèi)容,在model里調(diào)用objectModel()只是返回一個(gè)指針,并不是返回這個(gè)指針指向的內(nèi)容,model也沒(méi)有引用指針的功能,所以作者這樣初始化時(shí)不對(duì)的,當(dāng)然我目前的版本是5.15,可能5.9之前model有這樣的功能但是之后重寫(xiě)了,底層改動(dòng)這塊因?yàn)槲也艅偨佑|一個(gè)月還沒(méi)那么了解
QML 中使用 QAbstractListModel 作為 ListView 的 model 實(shí)例本文對(duì)應(yīng)的源碼地址:https://github.com/imtoby/CppModelForQMLExample 程序運(yùn)行效果: 我們需要注意的是我們?cè)谑褂?QAbstra...