QTableView和QSqlQueryModel的联合使用


QSqlQueryModel类为SQL结果集提供了只读数据模型。所以当前示例只显示不操作。
如果想在视图直接操作数据库内容,需要自己封装一个类且继承QSqlQueryModel,重写里面的虚函数。

#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlQueryModel>

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

效果图:
数据库内容

显示在界面的内容


猜你喜欢

转载自blog.csdn.net/weixin_39743893/article/details/80626683