QtModel

复制代码
    QModelIndex index1 = model->index(row,column,QModelIndex());
    QModelIndex index2 = model->index(row.column,index2);

QSqlQuery::size() 仅在使用了 QSqlQuery::exec() 后并且查询结果集的所有行都被读取时才有效。如果结果集很大或在使用游标的情况下,返回的行数可能不准确。

setText()

  • 用途setText()QStandardItem 类的一个方法,用于设置某个单元格中的文本内容。
  • 使用场景 :当你想修改某个 QStandardItem 的显示文本时,可以使用 setText()
  • setText() 仅修改显示文本,相当于 setData(text, Qt::DisplayRole)

setData()

  • 用途setData()QAbstractItemModel 类的一个通用方法,可以设置模型中任意角色(role)的数据。可以用于修改文本、图标、工具提示等各种数据。
  • 使用场景 :如果你想更灵活地修改模型中的数据,可以使用 setData(),它允许你指定角色(如 Qt::DisplayRole, Qt::ToolTipRole, Qt::DecorationRole 等),不仅限于文本内容。
  • setData**()** 修改用户数据,相当于 setData(value, Qt::UserRole + 1)

text()

  • 用途text()QStandardItem 类中的方法,用于获取某个单元格的显示文本。这相当于从 Qt::DisplayRole 角色中获取数据。

  • 局限性text() 只能获取显示文本,不能获取其他角色(如图标、工具提示等)的数据。

  • text() 本质上等同于调用 item->data(Qt::DisplayRole).toString()

  • DisplayRole (0) : 显示文本,用于用户界面中显示的字符串内容。setText() 其实就是对 DisplayRole 的一种简化操作。

  • DecorationRole (1): 装饰物,如图标或图片,用于项的装饰(如列表项前面的图标)。

  • EditRole (2) : 编辑模式下的值,通常与 DisplayRole 相同,但可以为编辑模式设置不同的值。

  • ToolTipRole (3): 项的工具提示,在用户悬停时显示的文本。

  • StatusTipRole (4): 状态提示,在状态栏中显示的提示信息。

  • WhatsThisRole (5): "这是什么"提示,用于更详细的帮助信息。

  • FontRole (6): 显示文本的字体。

  • TextAlignmentRole (7): 文本对齐方式,如左对齐、右对齐等。

  • BackgroundRole (8): 项的背景颜色。

  • ForegroundRole (9): 项的前景色(文本颜色)。

  • CheckStateRole (10): 复选框的状态(选中、未选中、部分选中)。

  • AccessibleTextRole (11): 无障碍文本,用于无障碍访问技术。

  • AccessibleDescriptionRole (12): 无障碍描述。

  • SizeHintRole (13): 项的大小提示,用于布局管理。

  • UserRole (0x0100): 用户自定义角色,用于存储用户定义的附加数据。

Qt::UserRole + 1000Qt::UserRole 是一个基础角色,值为 0x0100(256)。你使用 Qt::UserRole + 1000 是为了创建一个自定义的角色,并确保它不会与 Qt 内置的角色冲突。

QModelIndex

QModelIndex 是一个用于引用模型中某个特定单元格的对象。它不存储实际的数据,而是用来标识和操作模型中的某个位置。它包含信息,如行、列和一个指向所属模型的指针,用来告诉视图或控制器哪个数据发生了变化。

QModelIndex 的主要用途:
  • 索引模型中的单元格:它指向模型中的某个位置,而不是存储数据本身。
  • 传递数据位置 :比如,当你在 QTableView 中点击某个单元格时,视图可以通过 QModelIndex 知道你点击了哪一个单元格。
  • 在信号槽中使用 :许多 Qt 信号和槽函数使用 QModelIndex 来标识触发信号的位置。
QModelIndex 的常见函数:
  • row():返回索引的行号。
  • column():返回索引的列号。
  • parent():返回该索引的父级索引(如果是树形结构模型)。
  • data():通过这个索引从模型中获取数据。

QStandardItem

每个 QStandardItem 代表模型中的一个单元格或一项,能够直接存储数据和属性。

QStandardItem 的主要用途:
  • 存储实际的数据:它存储的是模型中的数据,比如显示文本、编辑值、工具提示、复选框状态等。
  • 树形结构 :一个 QStandardItem 还可以拥有子项,从而形成树形结构模型。
QStandardItem 的常见函数:
  • setData():设置项的数据。
  • data():获取项的数据。
  • setCheckable():设置是否显示复选框。
  • setEditable():设置是否可以编辑该项。
  • appendRow():向该项添加子项,形成树形结构。
相关推荐
可涵不会debug1 分钟前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom4 分钟前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
麦兜*10 分钟前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Slaughter信仰13 分钟前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库
麦兜*15 分钟前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
-Xie-1 小时前
Mysql杂志(十六)——缓存池
数据库·mysql·缓存
七夜zippoe1 小时前
缓存与数据库一致性实战手册:从故障修复到架构演进
数据库·缓存·架构
一个天蝎座 白勺 程序猿2 小时前
Apache IoTDB(5):深度解析时序数据库 IoTDB 在 AINode 模式单机和集群的部署与实践
数据库·apache·时序数据库·iotdb·ainode
QQ3596773452 小时前
ArcGIS Pro实现基于 Excel 表格批量创建标准地理数据库(GDB)——高效数据库建库解决方案
数据库·arcgis·excel