QT学习之路————使用QT自带的QSqlDatabase类简单操作sqlite数据库

前言:

这是用QT自带的QSqlDatabase类操作sqlite数据库,并且用tabView 显示数据库查询结果
一、新建一个QT工程
二、在工程里添加一个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();
}


猜你喜欢

转载自blog.csdn.net/huangan_xixi/article/details/51956243