Qt6常用类QStandardItemModel的使用

server/2024/9/25 8:27:43/

QStandardItemModel用于实现基于项的数据模型,QAbstractItemModel的子类,用于提供数据给Qt的视图类(QTreeView、QListView、QTableView等)进行显示和编辑,可以根据需要设置和获取项的文本、图标、状态和其他属性。它还提供了一些方便的方法来操作和查询数据,如插入、删除、排序、过滤等,通常配合QStandardItem和QTableView一起使用,实现动态可交互的表格,它还能配合关系型数据库一起使用,将数据库中的数据显示在窗口中。

QStandaraItemModel配合数据库一起使用,这样得到的一个model里面就装有了,对应数据库中的数据,通过QTableView的setModel函数就可以实现在QTableView上面展示数据库中的内容,而且通过使用QSS还能更改表的单元格的样式,比如填充的颜色,鼠标选中时候的颜色,设置文本居中等等,搭配槽函数和信号一起使用,可以完美做到一个动态数据处理表格,并且同步该表格对应数据库表的变化。

QString sql= "select*from booksystem.user";
QSqlQuery q;
if(!q.exec(sql)){ throw QSqlError("用户查询失败:", q.lastError().text()); }
int row = 0;
while(q.next())
{QString id = q.value(0).toString();QString name = q.value(1).toString();QString account = q.value(2).toString();QString password = q.value(3).toString();QString identity = q.value(4).toString();QStandardItem* item1 = new QStandardItem(id);QStandardItem* item2 = new QStandardItem(name);model.setItem(row, 0, item1);model.setItem(row, 1, item2);row++;
}
q.clear();
//配合数据库使用初始化表格数据

修改表的格式

for(int row=0;row<model->rowCount();row++)
{
for(int column=0;clumn<model->columnCount();column++)
{
QModelIndex index=model->index(row,column);
model->setData(index,Qt::AlignCenter,Qt::TextAlignmentRole);//表格元素文本居中
QStandardItem*item=model->itemFromIndex(index);
if(item&&!item->text().isEmpty())
{
item->setEditable(false);
//设置表格元素只读
item->setBackground(QColor(114,160,205));
//设置有数据的表格元素的填充颜色
}
}
}

最后搭配QTableView的setModel函数就可以实现一个好看的动态表格了

QTableView *t=new QTableView();
t->setModel(model);


http://www.ppmy.cn/server/36445.html

相关文章

UNRAID手动备份引导盘方法

主要讲解UNRAID如何在线备份引导U盘数据&#xff0c;防止优盘损坏 切换到主界面然后点闪存 点FLASH 备份 点击后如图 等等几分钟就会弹出下载的对话框 自动下载备份的zip格式文件 得到的ZIP文件使用方法 通过官方的写盘工具写回去

Tensor Cores 解密:解锁深度学习新篇章

Tensor Cores 使用介绍 概要介绍 TensorCore是英伟达GPU自Volta架构起支持的特性&#xff0c;允许CUDA开发者利用混合精度来显著提升吞吐量&#xff0c;且不影响精度。TensorCore在Tensorflow、PyTorch、MXNet和Caffe2等深度学习框架中得到广泛支持&#xff0c;用于深度学习训…

搜维尔科技:动作捕捉解决方案:销售、服务、培训和支持

动作捕捉解决方案&#xff1a;销售、服务、培训和支持 搜维尔科技&#xff1a;动作捕捉解决方案&#xff1a;销售、服务、培训和支持l

数学基础 -- 使用FFT对352x288的图像变换示例

变换 一维FFT的基本概念 FFT基于复数运算。对于任意一维信号&#xff08;在这里是图像的一行或一列&#xff09;&#xff0c;假设有 (N) 个数据点&#xff0c;一维FFT的目标是将这些点从时间域&#xff08;或空间域&#xff09;转换到频域。一维FFT的结果也是一个长度为 (N) …

流畅的python-学习笔记_一等函数

函数对象 函数也是对象&#xff0c;操作可像对象一般操作 高阶函数 高阶函数指接受参数为函数&#xff0c;或返回函数的函数 不少高阶函数在py3已经有了替代品。map&#xff0c; filter可通过生成式实现&#xff0c;reduce&#xff08;在functools里&#xff09;可通过sum实…

Mac idea gradle解决异常: SSL peer shut down incorrectly

系统&#xff1a;mac 软件&#xff1a;idea 解决异常: SSL peer shut down incorrectly 查看有没有安装 gradle -v安装 根据项目gradle提示安装版本 brew install gradle7idea的配置 在settings搜索gradle&#xff0c;配置Local installation&#xff0c;选择自己的安装目录…

docker的介绍及使用--解决应用程序的环境配置问题

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言docker的介绍及使用参考资料前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对docker的介绍及使用–解决…

【linux-1-Ubuntu常用命令-vim编辑器-Vscode链接ubuntu远程开发】

目录 1. 安装虚拟机Vmare和在虚拟机上安装Ubuntu系统&#xff1a;2. 常用的Ubuntu常识和常用命令2.1 文件系统结构2.2 常用命令2.3 vim编辑器 3. Ubuntu能联网但是ping不通电脑&#xff1a;4. Windows上安装VScode链接ubuntu系统&#xff0c;进行远程开发&#xff1a; 1. 安装虚…