前言:
一、新建一个QT工程这是用QT自带的QSqlDatabase类操作sqlite数据库,并且用tabView 显示数据库查询结果
二、在工程里添加一个tabView控件,还有一个Button控件
三、下面就是.cpp文件的代码,比较简单就不一步一步介绍了
#include "dialog.h" #include "ui_dialog.h" #include <QSqlDatabase> #include <QSqlQuery> #include <QDebug> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); this->setStyleSheet("background-color:rgb(240, 240, 240);"); size = 0; //初始化变量 model = new QStandardItemModel; model->setColumnCount(3); /**************************设置表头标签 ********************************/ model->setHeaderData(0,Qt::Horizontal,"ID"); model->setHeaderData(1,Qt::Horizontal,"User"); model->setHeaderData(2,Qt::Horizontal,"PassWd"); //ui->tableView->setModel(model); ui->tableView->verticalHeader()->hide(); ui->tableView->setColumnWidth(0,100); ui->tableView->setColumnWidth(1,100); ui->tableView->setColumnWidth(2,100); ui->tableView->horizontalHeader()->hide(); ui->tableView->setFrameStyle(false); ui->tableView->setStyleSheet("background-color:rgb(240, 240, 240);"); } Dialog::~Dialog() { delete ui; } void Dialog::on_pushButton_clicked() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName("./student"); db.open(); int j=0,i=0; QSqlQuery query; query.exec("SELECT * FROM user"); query.last(); //否则定位到结果最后,qt 文档说,这个方法非常慢 // numRows = query.at() + 1; // query.seek(numRows-5); do { i++; QStandardItem *itemID = new QStandardItem(QString::number(j)); model->setItem(j,0,itemID); QStandardItem *itemUser = new QStandardItem(query.value(0).toString()); model->setItem(j,1,itemUser); QStandardItem *itemPassWd = new QStandardItem(query.value(1).toString()); model->setItem(j,2,itemPassWd); j++; } while(query.previous()&&i<2); ui->tableView->setModel(model); j=0; i=0; db.close(); }