1.使用Qt Creater新建一个Qt Widgets Application,文档结构如下图所示;
2.创建界面如下所示:
3.其中mainwindow.h中的代码如下:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QSqlTableModel> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); static bool connectDB(); // void shuchu(); private slots: //void on_pushButton_clicked(); void on_query_clicked(); private: Ui::MainWindow *ui; QSqlTableModel *model; }; #endif // MAINWINDOW_H
其中mainwindow.cpp中的代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QSqlDatabase"
#include "QMessageBox"
#include "QSqlError"
#include "QDebug"
#include <iostream>
using namespace std;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
bool MainWindow::connectDB()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("root");
db.setDatabaseName("lab123");
if(!db.open())
{
//MainWindow::on_pushButton_clicked();
// QMessageBox::warning(this,"wrong",db.lastError().text());
return false;
}
else
{
return true;
}
}
void MainWindow::on_query_clicked()
{
static QSqlQueryModel *mode= new QSqlQueryModel(ui->tableView);
mode->setQuery("select * from equip");
mode->setHeaderData(0,Qt::Horizontal,tr("id"));
mode->setHeaderData(1, Qt::Horizontal, tr("name"));
ui->tableView->setModel(mode);
}
其中main.cpp中的代码如下:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.connectDB();
w.show();
return a.exec();
}
4.运行程序,点击query会出现显示效果: