QTableView和QSqlQueryModel的联合使用

一、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);}"); //设置表格颜色
 
 

三、效果图:

数据库内容
显示在界面的内容

QTableView和QSqlQueryModel的联合使用_第1张图片

 

你可能感兴趣的:(Qt杂坛)