QList<QObject*> dataList;定义了一个model,内容是Name,value键值对的形式
BookFeeds.qml页有一个ListModel {id: bookFeeds}
在qt5.1.0中通过:
QQuickView view;
QQmlContext *ctxt = view.rootContext();
ctxt->setContextProperty("bookFeeds", QVariant::fromValue(dataList));
没能绑定成功,请教如何绑定?新手多谢指教。
c++ qt5
------解决方案--------------------
我前几天也有一样的问题,后来看了这个有点启发,自带的实例,你试试,我也是新手
(QTDIR)\examples\declarative\modelviews\abstractitemmodel
------解决方案--------------------
首先你要有个一类用于保存你获得的那个dataList,然后在这个类里写一个函数把dataList作为返回值返回,如getDataList,这个函数在定义的时候要加Q_INVOKABLE宏,这样才能保证在qml中会调到这个函数。dataList的具体写法可以参考abstractitemmodel的例子
接下来在c++注册保存list的那个类,就像你上面写的,一样。
如:DataBaseManager* database = new DataBaseManager();
QQuickView view;
QQmlContext *ctxt = view.rootContext();
ctxt->setContextProperty("dbmanager", QVariant::fromValue(database));
最后在qml里的,绑定list,这样你每次操作dataList界面就会同时同步了
ListView
{
id:list
model:dbmanager.getDataList()
}