初学Qt——QTableView+QSqlqueryModel
我们在显示报表时可以用到上面两个类来实现,QTableView负责对视图显示;QSqlqueryModel则负责数据模块。
这里数据查询使用QSqlqueryModel主要是这个类可以通过自己写的查询语句来获得数据模型。
本文不对整个的流程作详细讲述,对本人在开发过程中遇到的一些点进行阐述
获得数据模型
QSqlQueryModel *Model = new QSqlQueryModel;
QString selectfromtable = "查询语句";
Model->setQuery(selectfromtable);
对表头名称进行修改,这里使用QString::fromLocal8Bit()是用于解决中文乱码问题的
Model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("姓名"));
Model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("证件号码"));
Model->setHeaderData(2,Qt::Horizontal,QString::fromLocal8Bit("性别"));
Model->setHeaderData(3,Qt::Horizontal,QString::fromLocal8Bit("配偶姓名"));
Model->setHeaderData(4,Qt::Horizontal,QString::fromLocal8Bit("子女数"));
Model->setHeaderData(5,Qt::Horizontal,QString::fromLocal8Bit("户籍地"));
Model->setHeaderData(6,Qt::Horizontal,QString::fromLocal8Bit("现居地"));
Model->setHeaderData(7,Qt::Horizontal,QString::fromLocal8Bit("出生日期"));
Model->setHeaderData(8,Qt::Horizontal,QString::fromLocal8Bit("婚姻状况"));
Model->setHeaderData(9,Qt::Horizontal,QString::fromLocal8Bit("是否标记离开"));
因为在对报表处理时,我们一般会在报表的每一列后面添加一些操作,这里在报表最后添加两列分别为编辑和删除
Model->insertColumn(10);//这里是在模型的第十列后面插入一列
Model->setHeaderData(10,Qt::Horizontal,QString::fromLocal8Bit("查看"));
Model->insertColumn(11);
Model->setHeaderData(11,Qt::Horizontal,QString::fromLocal8Bit("删除"));
将数据模型与TableView绑定,因为我们得到的数据是列的宽度是不一样的,但tableview默认是给一个固定宽度,这里我们使用resizeColumnsToContents()使列宽跟随内容改变。
使用resizeRowsToContents()则可使行高根据数据内容改变。
ui.tableVieW->setModel(Model);
ui.tableVieW->resizeColumnsToContents();
得到的效果如下图
可以看到最后面的两个按钮不是很理想,这时我们可以单独取出这两列对其列宽进行修改,只是修改按钮属性是不行的
代码如下
ui.tableVieW->setColumnWidth(10,50);
ui.tableVieW->setColumnWidth(11,50);
得到的效果如下
初学Qt——QTableView+QSqlqueryModel的更多相关文章
- Qt QTableView 表格内添加控件
目录 Qt QTableView 表格内添加控件 1. QItemDelegate 2. setIndexWidget 3. setIndexWidget + setLayout Qt QTableV ...
- QT QSqlQuery QSqlQueryModel
SQL执行操作 QSqlQuery提供了对数据库记录的Select.Insert.Update.Delete操作. SELECT操作: QSqlQuery query; query.exec(&q ...
- QT QTableView用法小结
QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 //准备数据模型 QStandardItemModel *student_model = new QS ...
- Qt QtableView使用
ui->setupUi(this); ui->mainToolBar->hide(); tableView = new QTableView(this); // 设置表头 QStan ...
- 【转载】QT QTableView用法小结
原始日期: 2016-08-16 09:28 来源:http://blog.csdn.net/wang_lichun/article/details/7805253 QTableView常用于实现数据 ...
- 转载:QT QTableView用法小结
出自: http://blog.chinaunix.net/uid-20382483-id-3518513.html QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: ...
- qt qtableview 样式设置
转载请注明出处:http://www.cnblogs.com/dachen408/p/7531159.html 1.设置tableview的列宽时,必须先setModel再setColumnWidge ...
- qt QTableView中嵌入复选框CheckBox 的四种方法总结
第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四种比较适合扩展,它除了可以嵌入复选框,还可以通过paint()绘制其它控件 ...
- Qt ------ QTableView QTableWidget
QTableView model提供数据 view提供视图 view用来显示model的数据 必须将model绑定到某个view中才能显示 QStandardItemModel* mod ...
随机推荐
- 爬虫笔记(二)——浏览器的模拟(Headers属性)
有的时候,我们无法爬取一些网页,会出现403错误,因为这些网页为了防止别人恶意采集其信息所以进行了一些反爬虫的设置.那么如果我们向爬取这些网页的信息,应该怎么办呢? 可以设置一些Headers信息,模 ...
- Java复习(一)——Java语言概述、开发环境、基础知识
设计模式:在各种应用系统中被大量应用,是设计的“常用套路” 作为Java WEB开发人员,需要掌握HTML/CSS/JS和数据库相关知识 常用的应用程序框架:Spring MVC,Spring Boo ...
- 数学是什么?_题跋—>数学是什么?
题跋—>数学是什么? 数学的定义在不同的解释中有不同的释义,它又像是哲学.又像是逻辑性:即研究数量关系.有研究结构和空间关系等等.因此很难给予一个非常准确的定义,正因为如此数学是渗透于生活的各个 ...
- 【更新中】Hotspot tracer
Hotspot Follower 闲着没事,打算做一个爬取社会热点的项目,首先通过微信搜狗进行分析. 代码基于PYTHON import requests import json def page(s ...
- springboot shiro ehcache redis 简单使用
引入相关pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- LTE-U/LAA
将LTE扩展至非授权频谱,得益于一个稳健的无线电通信线路,具有更好协调性的同步节点,以及以授权频谱为基点的载波聚合,LTE-U/LAA能提供比载波Wi-Fi更佳的网络性能和更强的用户体验,为移动运营商 ...
- Ubuntu 12.04 查看DOCSIS配置文件
查看BIN格式的DOCSIS配置文件,需要专用工具. 工具安装 在Windows下,可以使用工具VultureWare DOCSIS Config Editor. 在Ubuntu(本机版本12.04) ...
- form中采用图片作为提交按钮
<span style="font-size:14px;"><FORM name="formName" action="xxxx&q ...
- tarjan通俗易懂题
洛谷2661 https://www.luogu.org/problemnew/show/P2661 分析:求缩点后成环中,环大小最小的size #include<bits/stdc++.h&g ...
- Qt 项目中main主函数及其作用
main.cpp 是实现 main() 函数的文件,下面是 main.cpp 文件的内容. #include "widget.h" #include <QApplicatio ...