在QT的widget中用tableview显示sqlite数据库表中的内容。

用QTcreator创建一个基于Widget类的窗口,再拖一个tableview到widget中,保存.

 1.在widget.h中增添头文件:QtSql/qsql.h、QtSql/QsqlDatabase、QtSql/QsqlQuery、QtSql/QsqlQueryModel

2.在.pro工程文件中添加:QT+=sql

3.在widget.cpp中widget的构造函数中添加如下代码:

QsqDatabase db = QsqlDatabase::addDatabase("QSQLITE");

db.setDatabaseName("test.db");

if(!db.open())

{

//错误处理

}

static QSqlQueryModel *model = new QSqlQueryModel(ui->tableview);

model->setQuery(QString("select * from table"));

model->setHeaderData(0,Qt::Horizontal,QObject::tr("编号"));

model->setHeaderData(1,Qt::Horizontal,QObject::tr("姓名"));

model->setHeaderData(2,Qt::Horizontal,QObject::tr("年龄"));

ui->tableview->setModel(model);

db->close();

这样之后,table表里的内容就会显示到tableview中了。

几点说明:

1.运行程序,提示链接错误,则需要将pro文件中添加 += sql后,重新make一下工程

2.运行程序,tableview中是空白,那么可能是因为数据库位置没有配好,先改成绝对路径试试: C:\test.db

3.明明在界面编辑中拖了一个tableview控件进去,在编辑代码那里死活找不到tableview,全部保存好几遍也不行

后来直接运行一遍程序,再编辑代码,自动完成提示里终于出现tableview了!

QT使用SQLite的更多相关文章

  1. Qt 操作SQLite数据库

    项目中通常需要采用各种数据库(如 Qracle.SQL Server.MySQL等)来实现对数据的存储.查询等功能.下面讲解如何在 Qt 中操作 SQlite 数据库. 一.SQLite 介绍 Sql ...

  2. 关于QT和SQLite以及XML

    就关于qt连接使用sqlite折腾了一晚上.倒也不全是因为数据库连接的问题, 主要还是数据格式各自出问题. 原来的数据库是access, 为了导入linux下的sqlite, 我把其输出格式改成了xm ...

  3. Qt基于sqlite数据库的管理小软件

    闲来无事,写了一个基于sqlite的数据库管理小软件. 先上图 中心思想就是: 创建一个数据库 然后每一个分组对应一个数据表 然后遍历该数据表.将名字以treewidgetItem显示出来.添加删除实 ...

  4. QT中Sqlite的使用

    环境: 静态编译过sqlite 步骤: 1.C++链接器中加入Sqlite.lib,然后在测试一下是否能正常加载Sqlite驱动 #include<QtPlugin> Q_IMPORT_P ...

  5. Linux之Qt利用Sqlite静态编译库(转)

    参考:http://www.linuxidc.com/Linux/2011-11/47465.htm sqlite3编译安装 ------------------------arm版--------- ...

  6. Qt数据库(sqlite) — 总结

    #include <QtSql>QT += sql QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类 封装数据库所有记录 第一: ...

  7. Qt数据库sqlite总结

      QSqlDatabase类实现了数据库连接的操作QSqlQuery类用来执行SQL语句QSqlRecord类封装数据库所有记录QSqlRelationalTableModelQSqlQueryMo ...

  8. qt连接数据库Sqlite

    #include <QCoreApplication> #include <QDebug> #include <QSqlDatabase> #include < ...

  9. Linux QT 连接 Sqlite数据库

    #include <QApplication> #include <QDebug> #include <QSqlQuery> #include <QSqlDa ...

随机推荐

  1. Android动态添加Device Admin权限

    /********************************************************************** * Android动态添加Device Admin权限 ...

  2. Python简单介绍

    一.变量名命名规则 1).变量名要由字母数字下划线组成 2)变量名禁止以数字开头 3)变量名禁止使用Python自带关键字 4)变量名不要用中文和拼音 5)变量名大小写敏感 6)变量名推荐写法:下划线 ...

  3. C++学习(二十二)(C语言部分)之 项目扫雷实例

    一.新建项目 二.新建源文件 main.cpp和mining,cpp 三.新建头文件 mining.h 四.图片资源添加 添加完成后会在头文件里面生成一个.h头文件,用来调用资源 打开之后可以看到,对 ...

  4. 实验吧—隐写术——WP之 男神一般都很低调很低调的!!

    首先我们打开解题连接~ 是直接给我们下载了一个压缩文件,解压后得到: 确实是很帅的小哥哥呢,呵呵...... 分析题目提示,“获取隐藏在图片中的flag”,嗯~这句很重要,他决定了我们要先用那种工具 ...

  5. WCF- 契约Contract(ServiceContract、OperationContract、DataContract、ServiceKnownType和DataMember)(转)

    示例 1.服务 IPersonManager.cs using System; using System.Collections.Generic; using System.Linq; using S ...

  6. HTTP长连接、短连接究竟

    HTTP长连接.短连接究竟是什么?   1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用I ...

  7. Using Elixir Dynamic Supervisors

    转自: https://blog.smartlogic.io/elixir-dynamic-supervisors/ I have been working on my side project Gr ...

  8. Using pointer to access array instead of index

    See example below firstly. uint8_t parity = ; uint8_t index = ; //flag gMUXTask.responseData[index++ ...

  9. mysql存储程序

    什么时候会用到存储过程 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度2.当对数据库进行复杂操作时 ...

  10. css易错点总结

    传智老师说:找工作要问调不调IE6,同样的工作待遇,如果不用调IE6开12000工资,要调IE6,直接加价到15000,因为调IE6能累死人,气死人. 行高要在字体后面,如下: 正确:font:400 ...