当前位置: 首页 > news >正文

Qt MV架构 数据-窗口映射器

一、基本概念

数据-窗口映射器QDataWidgetMapper类在数据模型的一个区域和一个窗口部件间提供了一个映射,这样就可以实现在一个窗口部件上显示和编辑一个模型中的一行数据。

二、代码示例

#include <QDataWidgetMapper>
#include <QStandardItemModel>//然后在构造函数中添加如下代码:
{QStandardItemModel *model = new QStandardItemModel(3, 2, this);model->setItem(0, 0, new QStandardItem("xiaoming"));model->setItem(0, 1, new QStandardItem("90"));model->setItem(1, 0, new QtandardItem("xiaogang"));model->setItem(1, 1, new QStandardItem("75"));model->setItem(2, 0, new QStandardItem("xiaohong"));model->setItem(2, 1, new QStandardItem("80"));m_mapper = new QDataWidgetMapper(this);//设置模型m_mapper->setModel(model);//设置窗口部件和模型中的列的映射m_mapper->addMapping(ui->lineEdit, 0);m_mapper->addMapping(ui->lineEdit_2, 1);//显示模型中的第一行m_mapper->toFirst();
}

上面创建了一个QDataWidgetMapper实例,然后为其设置了关联的模型,并设置了窗口部件和模型中对应列的映射,最后使用toFirst()函数来显示模型中第一行的数据。

下来再增加两个按钮,“上一条”和“下一条”,它们的槽函数如下:

void MainWindow::on_pushbutton_clicked()
{m_mapper->toPrevious();
}
void MaiWindow::on_pushbutton2_clicked()
{m_mapper->toNext();
}

分别使用了toPrevious()toNext()函数来显示模型中上一行和下一行的数据。

还有一个toLast()函数可以显示模型中嘴鸥一行的数据。

关于QDataWidgetMapper类的使用,也可以参考Simple Widget Mapper和Combo Widget Mapper示例程序,它们在Item Views分类中。


参考资料:Qt Creator快速入门 (霍亚飞 著)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • java死锁检测
  • 【Harmony】SCU暑期实训鸿蒙开发学习日记Day1
  • mysql 8新特性
  • Perl 语言开发(十三):网络编程
  • GO语言中的接口(interface)
  • 【Linux】01.Linux 的常见指令
  • Javassist 修改 jar 包里的 class 文件
  • XXL-JOB:定时任务框架的实战应用与调度方式详解
  • 互联网末法时代的一些思考
  • 【机器学习】分类算法-支持向量机
  • 深入理解 Vue.js 中的 nextTick:原理与应用
  • mysql高版本(8.0+)group_by报错的处理方法
  • XBOX360-玩体感游戏时提示:您必须进行系统更新,才能使用Kinect
  • Mysql解忧杂货铺
  • STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)
  • 「译」Node.js Streams 基础
  • 345-反转字符串中的元音字母
  • E-HPC支持多队列管理和自动伸缩
  • IndexedDB
  • js操作时间(持续更新)
  • Laravel 菜鸟晋级之路
  • Linux各目录及每个目录的详细介绍
  • php中curl和soap方式请求服务超时问题
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 开源SQL-on-Hadoop系统一览
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 入口文件开始,分析Vue源码实现
  • 手写一个CommonJS打包工具(一)
  • 移动端 h5开发相关内容总结(三)
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在weex里面使用chart图表
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 自定义函数
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • $$$$GB2312-80区位编码表$$$$
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (java)关于Thread的挂起和恢复
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (正则)提取页面里的img标签
  • ./和../以及/和~之间的区别
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET BackgroundWorker
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • [1] 平面(Plane)图形的生成算法
  • [100天算法】-目标和(day 79)
  • [20140403]查询是否产生日志