Qt5.5.0使用mysql編寫小軟件源碼講解---顧客信息登記表
一個個人覺得比較簡單小巧的軟件。
下面就如何編寫如何發布打包來介紹一下吧!
先下載mysql的庫文件鏈接:http://files.cnblogs.com/files/xiaobo-Linux/mysql.zip
把兩個文件放入 Qt目錄\Qt5.5.0\5.5\mingw492_32\bin文件夾下直接粘貼(路徑根據自己的設置)
也可以放到原來工程代碼中,頭文件用雙引號引出即可。
QQ463431476
在.pro文件里輸入
Qt += sql
然后執行以下Qmake識別mysql
這樣在頭文件中引用庫函數即可了:
mysql語句的使用跟sqlite3使用方法是一樣的。
不多說來先,下面看源碼就懂啦!
pro
#------------------------------------------------- # # Project created by 小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xiaobo-Linux/ QtCreator 2016-01-29T20:59:48 # #------------------------------------------------- QT += core gui QT += sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = usersdata TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui RESOURCES += \ icon.qrc RC_FILE=icon.rc
.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QSqlDatabase> //數據庫類 #include <QSqlQuery> //執行語句類 #include <QSqlRecord> //返回記錄類 #include <QtSql> #include <QApplication> #include <QMessageBox> #include <iostream> #include <QtDebug> //#include <QAbstractTableModel> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_save_clicked(); void on_del_clicked(); void select(); void on_search_clicked(); void on_back_clicked(); //小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xiaobo-Linux/ private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
main。cpp
主要是鏈接db文件
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); //創建DB文件,創建表格 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); std::cout<<"begin sqlite"<<std::endl; db.setDatabaseName("userdata.db"); if ( !db.open()){ QMessageBox::critical(NULL, QObject::tr("Collection"), QObject::tr("failed to connect to database!")); return 0; } QSqlQuery query; query.exec("create table userdata (會員編號 integer PRIMARY KEY ,姓名 text,性別 text,登記日期 text,手機號1 int,手機號2 int,備注 text)"); MainWindow w; w.show(); return a.exec(); }//小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xiaobo-Linux/
mainwindow.cpp
具體的實現代碼
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowTitle("會員信息登記表"); setWindowIcon(QIcon("xiaobo.ico"));//設置軟件圖標 select();//顯示表格 } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_save_clicked() { QSqlQuery query; query.prepare("insert into userdata (會員編號,姓名,性別,登記日期,手機號1,手機號2,備注)values(:id,:name ,:sex,:date,:phone1,:phone2,:mark )"); query.bindValue(":id",ui->textEdit_9->toPlainText()); query.bindValue(":name",ui->textEdit->toPlainText()); query.bindValue(":sex",ui->textEdit_5->toPlainText()); query.bindValue(":date",ui->textEdit_6->toPlainText()); query.bindValue(":phone1",ui->textEdit_2->toPlainText()); query.bindValue(":phone2",ui->textEdit_3->toPlainText()); query.bindValue(":mark",ui->textEdit_7->toPlainText()); query.exec(); select(); QMessageBox::information(this,"提示","用戶信息保存成功!"); } void MainWindow::on_del_clicked() { QSqlQuery query; int curRow = ui->tableView->currentIndex().row(); //鼠標選擇刪除第幾行 QModelIndex index = ui->tableView->currentIndex(); int id=index.sibling(curRow,0).data().toInt(); query.prepare("delete from userdata where 會員編號 = :id"); query.bindValue(":id",id); query.exec(); select(); } void MainWindow::select() { QSqlQueryModel *model = new QSqlQueryModel(ui->tableView); model->setQuery(QString("select *from userdata")); ui->tableView->setModel(model); } void MainWindow::on_search_clicked() { QSqlQuery query; ui ->tableView -> clearSpans(); //tableview清空 QSqlQueryModel *model = new QSqlQueryModel(ui->tableView); query.prepare("select *from userdata where 姓名 = :name "); //like模糊查詢沒成功 query.bindValue(":name",ui->textEdit_8->text()); query.exec(); model->setQuery(query); ui->tableView->setModel(model); } void MainWindow::on_back_clicked() { select(); }
可以自行購買,在某寶上,掃一掃就行了。
ui
rc資源圖片加入
添加ico : http://www.cnblogs.com/xiaobo-Linux/p/5176432.html
軟件演示:
最后形成一個獨立的軟件exe格式:Qt使用自帶的windeployqt 生成exe來發布軟件 : http://www.cnblogs.com/zhaocundangp/4678026.html
然后軟件的安裝打包:
最后用個打包軟件來發布軟件吧!!
這樣就行了。