qml Tableview 使用 ,c++中取数据供界面显示

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

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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值