1.c++中组装一个表结构体赋值给Tableview的model
具体方法如下:
1.创建一个一条记录的数据表类
2.创建一个model 继承QAbstractListModel
3.main.cpp中将该model加入进qml,单类形式加入,一个model绑定一个tableview
AnimalModel model;
model.addAnimal(Animal("Wolf", "Medium"));
model.addAnimal(Animal("Polar bear", "Large"));
model.addAnimal(Animal("Quoll", "Small"));
QQuickView view;
view.setResizeMode(QQuickView::SizeRootObjectToView);
QQmlContext *ctxt = view.rootContext();
ctxt->setContextProperty("myModel", &model);
4.在c++中处理逻辑,将数据加入该model中,加载完后,发送一个信号通知qml界面进行数据更新
5.qml中绑定c++信号,进行model赋值,跟新界面
具体例子如下:
main.cpp
#include "model.h"
#include <QGuiApplication>
#include <qqmlengine.h>
#include <qqmlcontext.h>
#include <qqml.h>
#include <QtQuick/qquickitem.h>
#include <QtQuick/qquickview.h>
int main(int argc, char ** argv)
{
QGuiApplication app(argc, argv);
// 此部分逻辑可以放入c++业务逻辑中,更新完数据后给界面发送一个信号
AnimalModel model;
model.addAnimal(Animal("Wolf", "Medium"));
model.addAnimal(Animal("Polar bear", "Large"));
model.addAnimal(Animal("Quoll", "Small"));
QQuickView view;
view.setResizeMode(

本文介绍如何使用C++与QML结合,通过创建自定义的QAbstractListModel子类,实现动态填充TableView的数据。具体步骤包括定义数据模型、在C++中填充模型并发送更新信号、在QML中绑定模型并更新界面。
最低0.47元/天 解锁文章
2464

被折叠的 条评论
为什么被折叠?



