一、QSqlQueryModel简介
QSqlQueryModel类为SQL结果集提供了只读数据模型。所以当前示例只显示不操作。
如果想在视图直接操作数据库内容,需要自己封装一个类且继承QSqlQueryModel,重写里面的虚函数。
二、代码实现
#include
#include
#include
QSqlDatabase
*
m_db;
QSqlQuery
*
m_qy;
QSqlQueryModel
*
m_model;
第一步//打开数据库
m_db
=
new
QSqlDatabase;
*
m_db
=
QSqlDatabase::
addDatabase(
"QMYSQL");
//链接MYSQL的驱动
m_db->
setHostName(
"127.0.0.1");
//设置主机名
m_db->
setPort(
3306);
//配置端口号
m_db->
setDatabaseName(
"myDBtest");
//打开"myDBtest"数据库
m_db->
setUserName(
"root");
//账号
m_db->
setPassword(
"root");
//密码
if(
m_db->
open()){
qDebug()<<
"-------------------";
}
else{
qDebug()<<
"+++++++++++";
}
m_qy
=
new
QSqlQuery;
第二步//设置QSqlQuery初始化
m_model
=
new
QSqlQueryModel;
m_model->
setQuery(
QString(
"select
receive_num,good_num,original_len,color_backups
"
"from
waitcheck"));
m_model->
setHeaderData(
0,
Qt::
Horizontal,
tr(
"收货码"));
m_model->
setHeaderData(
1,
Qt::
Horizontal,
tr(
"商品编码"));
m_model->
setHeaderData(
2,
Qt::
Horizontal,
tr(
"原长"));
m_model->
setHeaderData(
3,
Qt::
Horizontal,
tr(
"颜色"));
ui->
tableView->
setModel(
m_model);
ui->
tableView->
setAlternatingRowColors(
true);
//使表格颜色交错功能为真
ui->
tableView->
setStyleSheet(
"QTableView{background-color:
rgb(250,
250,
250);"
"alternate-background-color:
rgb(234,
234,
234);}");
//设置表格颜色
三、效果图:
数据库内容
显示在界面的内容