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

Qt5控件模型工具类数据模型

其中,QDirModel可以以树形方式显示某个目录下的所有子目录及其相关信息;QProxyModel用于过渡旧的Model类型到新的类型上;QStandardItemModel使用最简单的Grid方式显示Model。此外,开发人员还可以从QAbstractListModel、QAbstractProxyModel和QAbstractTableModel继承出符合自己要求的Model。

除了使用现有的模型和视图外,Qt还提供了更为便捷的类来处理常见的一些数据模型。它们将模型和视图合二为一,因此可以更方便地处理一些常规的数据类型。然而,使用这些类型可能会失去模型/视图结构的灵活性,所以需要根据具体情况进行选择。

例如,QTableWidget继承自QTableView,而QSqlTableModel可以与QTableView绑定,但不能与QTableWidget绑定。在代码中,使用QSqlTableModel可以设置表名、编辑策略、选择数据等,然后将其与QTableView绑定并显示出来。

在绑定视图和模型时,必须使用new关键字创建模型,否则视图无法跟随模型的改变而改变。下面是正确的写法:

```

QStandardItemModel *model;

model = new QStandardItemModel(4, 2);

ui.tableView->setModel(model);

model->setHeaderData(0, Qt::Horizontal, tr("Label"));

model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));

for (int row = 0; row < 4; ++row) {

    for (int column = 0; column < 2; ++column) {

        QModelIndex index = model->index(row, column, QModelIndex());

        model->setData(index, QVariant((row+1) * (column+1)));

    }

}

```

这段代码创建了一个QStandardItemModel对象,并设置了表格的行数和列数。然后设置表头数据,最后通过循环为每个单元格设置数据。


http://www.mrgr.cn/news/20300.html

相关文章:

  • YOLOV5入门教学 - yolo.py文件
  • MySQL中的字符串函数:CONCAT()
  • 记录工作中学习进度
  • Java运算符(详解)
  • 【Linux】易忘操作集合
  • STL算法详细解剖——单纯数据处理函数
  • golang学习笔记02——gin框架及基本原理
  • Java常见排序算法详解
  • AI诈骗:如何在享受AIGC带来的便利同时确保安全?
  • D365 query
  • Linux基础入门 --6 DAY
  • 亚马逊秋季大促:多店铺高效管理和盈利策略
  • 视频监控系统选型:为何EasyCVR视频汇聚平台成为优选方案
  • 常见的 Linux 命令大全(表格形式)
  • Java【数据类型】
  • 【Python基础】这篇文章带你了解Python的基本特点,让学习Python变得事半功倍!!!
  • 如何通过Python SDK描述Collection
  • 企业财税自动化解决方案如何提升财务效率与准确性
  • 自动驾驶坐标转换(代码)
  • 解读:以RTC为基,AI为脑的“超拟人”AI实时互动解决方案