qt怎么表格输出mysql数据

qt怎么表格输出mysql数据,第1张

1)创建ui界面 (2)导入头文件 一、自动提交模式 二、手动提交模式 (1)构造函数中的代码 (2) “提交”按钮的槽函数 在ui界面导入一个Table View。 这个控件可以显示表格,在代码中我们通过setHeaderData()函数可衫碰神吵余以自定义每列的名称。 需要用到以下头文件,QSqlDatabase用于连接数据库,QMessageBox用于d出对话框,QSqlError用于显示数据库的错误信息,QSqlQuery和QSqlTableModel用于 *** 作数据库。 #include <QWidget>#include <QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QString>#include <QSqlQuery>#include <QSqlTableModel>在Qt窗口显示的表格中改动数据,然后点击回车,数据库中的表格中的数据就自动或亏更新了。 注意,在这里必须是敲击回车才会进行数据库的更新,如果直接用鼠标切换到其他的地方是不会更新数据库的。 //连接数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL")db.setHostName("127.0.0.1")db.setUserName("root")db.setPassword("123456")db.setDatabaseName("aaa2")if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text())} //实例化model model = new QSqlTableModel(this)//将模型设置到视图 ui->tableView->setModel(model)//给model设置数据表,前提条件是数据库已经打开了 model->setTable("student")

按照这三点顺序:

1.#include <QtSql/QMYSQLDriver>去掉

然后重新运行程序

根据提示

2.如果找不到QMYSQL驱动,那么你需要先编译这个驱动。先到Plugins/SqlDriver下看看有没有qsqlmysql.*与qsqlmysqld.*的动态库文件。

如果没有,说明你没有编译mysql驱动插件。如果有但是连不上驱动,说明你的动态库没有放在程序的目录下(实质是历答没有放在程序可搜索的目录里),把这些动态库放在程序目录,不要少mysql的动态库(这个不是QT编译的那个肢型慧QSQLMSQL的那个,是MYSQL自己的都太库)。

3.编译mysql驱动插件。

打开你的QT助手(Qt Assistant),查找这个“SQL Database Drivers”。里面有编译的方法。

注租森意了这个编译需要你提供MySql的头文件和库文件。你说的mysql.h即mysql的头文件了。如果你没有,去下载MYSQL的SDK。

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

假设有数据库文件test.db,有表table(id integer, name nvarchar(20),age integer),且有数条数据。

首先用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中了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12301592.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存