Qt使用QSqlTableModel界面显示用法(一、默认显示)

【Qt之QSqlTableModel】介绍及使用 阅读详情

这是我的第一篇博客 如果有写的不好的地方请谅解 我会好好学习的!
首先qt使用数据库可以用最基本的exec执行语句,但是本章节我要介绍的是qt中自带的QSqlTableModel来显示数据库的数据。

~~~~~~~~~~
我们在QT中新建一个带有ui的界面项目。
要使用sql头文件或者语句的话,首先要在.pro文件里添加

QT += sql

保存后,QT会自动识别加载sql模块。

.h文件内添加以下内容

#include "qsqldatabase.h"
#include "qmessagebox.h"
#include "qsqlerror.h"
#include "qsqlquery.h"
#include "qsqltablemodel.h"

定义数据连接对象

private:
	QSqlDatabase db;

.cpp内建立连接,一般在构造函数中添加。

	db = QSqlDatabase::addDatabase("QSQLITE");//数据库类型
    db.setDatabaseName("TEST.db");//建立连接,已存在即连接,不存在即建立连接
    if(!db.open())//打开连接
    {
        QMessageBox::warning(this,"wrong",db.lastError().text());
        return;
    }

db.setDatabaseName(“TEST.db”); 生成的db文件在工程目录下位置:
/Users/yucheng/Applications/Learn_Qt/build-learn_QSqlTableodel-Desktop_Qt_6_0_1_clang_64bit-Debug/learn_QSqlTableodel.app/Contents

如果连接失败,查看弹出信息框失败的原因。
为了数据库内有数据可见,我们执行以下函数。

    QSqlQuery query;
    if(!query.exec("create table EXAMPLE("
                   "id integer primary key autoincrement,"
                   "name varchar,"
                   "age integer,"
                   "city varchar"
                   ")"))
        QMessageBox::warning(this,"wrong",query.lastError().text());

    if(!query.exec("insert into EXAMPLE (name,age,city) values ('李四',21,'扬州')"))
        QMessageBox::warning(this,"wrong",query.lastError().text());

插入数据自己定,这里只是提供一个模版。
运行过后如果没有报错则是成功建立一个EXAMPLE表并插入一行数据。接着就是界面设计,我是使用了如下控件:

接下来就是见证奇迹的时刻

在构造函数或自己定义的函数中添加

	QSqlTableModel * model = new QSqlTableModel(this,db);
    model->setTable("EXAMPLE");
    ui->tableView->setModel(model);
    model->select();

首先,第一句话就是建立一个model模型并连接至db(之前连接的对象)
第二句话就设置model的当前使用表名,因为一个数据库中有多个表名,你对数据库操作肯定要知道是哪个表啊。
第三句话就是当前tableview的应用语句,界面显示的是view,要建立model和tableview之间的关系。
第四句话相当于selec语句,不必阐述。
这里的话就相当于数据库语句

select * from EXAMPLE

这时候,就可以看见运行后的画面了

这个时候大家注意到表头是英文的,且是数据库里的属性名。如果想对界面稍做美化,参考以下代码,都有注释不做过多阐述

    QStringList tables;
    tables << "id" << "姓名" << "年龄" << "城市";
    for(int i = 0 ; i < tables.count(); i++)
        model->setHeaderData(i,Qt::Horizontal,tables[i]);//设置显示框表头显示
    model->setSort(0,Qt::AscendingOrder);//设置按照第0列升序排序,DescendingOrder降序
    ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置单元格不可编辑
    ui->tableView->horizontalHeader()->setStretchLastSection(true);//设置最后一列填充后面表格
    ui->tableView->setColumnHidden(0,true);//设置第0行隐藏
    ui->tableView->setColumnWidth(1,50);//设置列宽,界面看起来更舒适
    ui->tableView->setColumnWidth(2,30);//设置列宽,界面看起来更舒适

界面显示

~~~
初始的就这样了。如果有疑问或者不足的地方私信我,感谢!
继续下一章:添加功能的实现

关于QSqlTableModel的使用说明(QT上创建本地SQL) 前言:通常我们操作数据库时,需要使用sql语句;在qt开发环境中提供了QSqlTableModel类,它可以通过简单的接口去操作数据库,即使不熟悉sql语句也可以对数据库进行大部分的操作,而且该模型还具有数据缓存功能,在修改数据后并不是立刻同步到数据库中,允许用户进行数据撤回,如果已经提交到数据库的数据就不能进行撤回了;QSqlTableModel还有一个非常方便的操作就是它可以将数据库的所有记录显示到QTableView控件上,并可以直接通过QTableView控件对数据库任意位置的数据进行修改。下面就Q 阅读详情

相关推荐

qt4到qt5使用qsqltablemodel的变化

查到了qt5的变更列表,在设计qsqltablemodel时有下面变化。 QtSql-----QSqlQueryModel/QSqlTableModel/QSqlRelationalTableModel* The dataChanged() signal is now emitted for changes made to an insertedrecord that has n

Big__Fly的专栏 1742

[Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel

[Qt教程] 第25篇 数据库(五)SQL表格模型QSqlTableModel 楼主  发表于 2013-5-21 20:36:22 | 查看: 923| 回复: 7 SQL表格模型QSqlTableModel 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 4196

qt QSqlTableModel在tableview显示checkbox添加复选框

参考了几篇大佬的博客 QMap用法: QT QMap介绍与使用. tableview显示checkbox添加复选框: sql QtableView中添加复选框. Qt 之 QTableView 添加复选框(QAbstractTableModel). .h文件 #ifndef QSQLBUGMODEL_H #define QSQLBUGMODEL_H #include <QSqlTableM...

weixin_43387612的博客 3046

Qt使用QSqlTableModel界面显示用法(五、查询功能)

众所周知,查询功能是所有基础操作中最麻烦的功能。

yc__coder的博客 7468

Qt QSqlTableModel详解

1.QSqlTableModel 用来显示数据库中数据表的数据,实现对数据的编辑、插入、删除等操作。实现数据的排序和过滤 2.常用API void setTable(const QString &tableName) //设置数据表名称 void setFilter(const QString &filter) //设置记录过滤条件 void setSort(int column,Qt::SortOrder order) //设置排序字段和排序规则,需调用select()才生...

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 2万+

【QT开发】SQL表模型QSqlTableModel类详解及实战应用

QSqlTableModel 是 Qt 提供的一个功能强大且灵活的 SQL 表模型管理类,通过本篇文章的学习,您应该对 QSqlTableModel 有了全面的理解,能够在自己的项目中正确使用它。QSqlTableModel 在用户界面中帮助您更好地管理和显示数据库表数据,实现高效的数据展示和编辑,有助于创建用户友好和高效的数据库应用场景。

科技改变人类,技术成就未来 2020

Qt使用QSqlTableModel界面显示用法(二、添加功能)

根据上一次的讨论,这次我们来研究一下QSqlTableModel的添加方法。 首先新建一个Qt界面 用dialog界面,因为我们需要dialog的exec()函数。 然后稍微设计一下显示窗口 这个界面就是添加的数据了,id是我们设定的主键值,随数据自动增长,所以不需要手动输入。 既然是添加操作,我们肯定要添加槽函数,在主ui下的添加按钮右击选择“转到槽”,一般选择默认的click()函数即可。 在.cpp函数下会显示 void MainWindow::on_pushButton_clicked() {

yc__coder的博客 2706

解决VMWare ESXi PCIe直通显卡导致的DevicePowerOn启动故障

本文详细解析了VMWare ESXi中PCIe直通显卡导致的DevicePowerOn启动故障,重点分析了MMIO空间不足的根本原因,并提供了完整的解决方案。通过修改.vmx文件中的关键参数,如pciPassthru.64bitMMIOSizeGB,可以有效解决显存分配问题。文章还涵盖了硬件兼容性检查、性能调优技巧及大规模部署的实战案例,帮助用户彻底解决显卡直通难题。

weixin_42537919的博客 575

QT的SQL模块 - QSqlTableModel的使用

1、SQLite是一种无需服务器、无需进行任何配置的数据库。2、SQLite是可以跨平台使用的数据库。3、SQLite的驱动库文件很小,包含完整功能的驱动可以小到只有500KB。QtSQL提供的主要类的简要功能描述如下图所示QSqlDatabase用于建立与数据库的连接,一般先加载需要的数据库驱动,然后设置数据库的登录参数。数据库的操作一般需要将数据库的内容在界面上进行显示和编辑,Qt采用Model/View结构进行数据库内容的界面显示。

weixin_56169816的博客 1758

Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战

本文介绍了ClangStaticAnalyzer静态代码分析工具的使用方法。该工具基于Clang/LLVM,可检测C/C++代码中的内存泄漏、空指针等常见错误。主要内容包括:安装指南(Ubuntu/macOS/Windows)、命令行使用方法、CMake项目集成方案、GitHub Actions自动化分析配置,以及HTML报告生成与查看。文章还提供了官方资源链接,帮助开发者系统掌握从本地调试到持续集成的完整静态分析工作流,提升代码质量保障能力。适用于需要在开发过程中实施静态分析的C/C++项目。

u014358031的博客 2158

Silvaco Atlas(五)——物理模型总结

物理模型总结

qsz1425AWD2121的博客 2151

Qt使用QSqlTableModel界面显示用法(三、删除功能)

删除功能,为了介绍方便,我将采用选中当前行进行删除操作 当然,考虑到误操作的可能性,我们在删除前会进行提示,提示我们选择使用QMessageBox 代码如下: void MainWindow::on_pushButton_2_clicked() { int row = ui->tableView->currentIndex().row();//记录当前选择行 if(QMessageBox::Yes == QMessageBox::question(this,"Make Sure"

yc__coder的博客 2743

步进电机励磁模式

1. 励磁模式 步进电机的基本操作模式称为 励磁模式,能够使步进电机工作在全步模式,半步模式和微步模式,其中微步模式能够有效的降低步进电机相电流的噪声,能够改善步进电机固有的噪声震动问题。下面将介绍 3 种励磁模式。 2. 全步励磁模式 所谓全步模式,就是依据电机固有结构设计固定的步距角工作,一个电脉冲,步进电机前进一个步距角。这个步距角使电机设计结构所决定的,也可以理解为电机以最大的步距角旋转。 3. 半步励磁模式 半步模式是以电机固有的结构决定的步距角的一半角度进行步进旋转。如下图所示,步进

zhbi98 的技术 Blogs 5549

Qt使用QSqlTableModel界面显示用法(四、修改功能)

修改功能我用的方法也很简单,双击要修改的单元格,就可以弹出一个窗口,用于重新编辑。 要想使用tableview的双击功能,在ui界面上对tablevoew右击“转到槽”,选择doubleClicked(const QModelIndex &index)函数 在新建的函数体下写相应代码: QSqlTableModel * model = new QSqlTableModel(this,db);//新建model model->setTable("EXAMPLE");//设置表

yc__coder的博客 3551

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

GEE:关于遥感生态指数(RSEI)的若干疑问

本文记录了若干关于在 Google Earth Engine (GEE)平台上,计算基于主成分分析(PCA)的遥感生态指数(RSEI)的问题。并记录了解决这些问题的一些答案。问题包括,主成分分析的特征值的正负,主成分的占比,去云后空值像素的处理方法,异常值处理方法,如何看载荷等。

养乐多的博客 3417

QT 使用QSqlTableModel对数据库进行创建,插入,显示

本案例用于对数据库中的数据进行显示等其他操作,其他表格筛选,过滤等功能可看此博客框架:数据模型使用,视图使用QTableView,表格的一些字体或者控件之类的使用实现。导航栏的变化实时的传回给表格,所有的数据库表都实现继承一个表格类,根据表格本身的特性可以设置自己的委托。数据库使用一个单列类进行管理,包括数据库的读取,创建,数据插入,以及对模型的映射等。使用的数据库类型为QPSQL知识理应共享,源码在此。

Ray 1889

ElectrolyteGPT:首个电池电解液逆向设计的生成式 AI 系统 —— 算法原理与复现解析

数据驱动的重要性:1100 万→100 万的精心筛选,比单纯增大模型更有效领域适配:fLine 表示法、正则分词、化学感知的数据增强(SMILES randomization)都是关键小模型的力量:6M 参数在特定化学空间的表现,远超通用大模型在相同任务上的零样本能力条件生成的极限:10 维条件导致模型崩溃,提示我们需要更好的条件编码策略(如 diffusion guidance、RLHF-style 偏好优化)未来方向配方实验验证。

ASKCOS博客 123

【Qt】数据库实战之QSqlTableModel模型

00. 目录 文章目录00. 目录01. 概述02. 开发环境03. QSqlTableModel基本操作04. QSqlTableModel修改操作05. QSqlTableModel查询操作06. QSqlTableModel排序操作07. QSqlTableModel删除操作08. QSqlTableModel插入操作09. QSqlTableModel总结10. 附录 01. 概述 只读的QSqlQueryModel模型其实也可以实现编辑功能的,但是实现起来很麻烦。而QSqlTableModel提供

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 1万+

UFS软件分区介绍

本文主要介绍了ufs软件分区管理的概况,能够使大家对软件分区有个大体的认识

肥匪斐's blogs 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Qt使用QSqlTableModel界面显示用法-全代码(详细见之前博客)

.pro QT += core gui QT += sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on yo.

yc__coder的博客 1657

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

QT之QSqlTableModel与tableview的使用

具体描述参考博客:https://blog.youkuaiyun.com/heaven_evil/article/details/77853998 QSqlTableModel *model = new QSqlTableModel(this, db); model-&gt;setTable("db_result_spine"); //指定模型要关联的表(emp...

kangshuaibing的博客 5762

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Qt数据库练习之QSqlTableModel的使用(MySql数据库示例,含源码+注释)

一、各操作示例 提示:示例图中开始都先刷新了数据表,表明数据为最新数据;源码在本文第三节(源码含详细注释)。 1.1 修改记录(数据) 下图含手动更新记录和自动更新记录时的记录修改操作,其中前十秒是自动更新记录的操作,后十秒为手动更新记录的操作。 1.2 添加记录(数据) 下图为添加记录的操作,新添加的记录行的行标题是‘*’符号,并且当更新策略为手动更新时,需要手动保存记录。 1.3 删除记录(数据) 下图为删除记录的操作,删除后行的行标题变为‘!’,并且删除操作不区分自动/手动提交记录,无论怎样都是自

lw的博客 7694

Qt SQL:QSqlQueryModel、QSqlTableModel

Qt SQL:QSqlQueryModel、QSqlTableModel

友善啊,朋友的博客 4176

Qt QSqlTableModel 使用心得

Qt  QSqlTableModel  使用心得 连接数据库 执行sql查询,条件显示,排序 获取记录数,列数以及记录内容,字段内容 新增,修改,删除,恢复 其它     1---------------连接数据库(我用的access2003做实验) 在.pro文件添加 QT  +=SQL win32:CONFIG+=console   -----------------

专注的力量 5万+
下一篇: Qt使用QSqlTableModel界面显示用法(二、添加功能)
巨蟹贼香
博客等级 码龄9年 76粉丝 43原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值