Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
一个个人觉得比较简单小巧的软件。
下面就如何编写如何发布打包来介绍一下吧!
先下载mysql的库文件链接:http://files.cnblogs.com/files/xiaobo-Linux/mysql.zip
把两个文件放入 Qt目录\Qt5.5.0\5.5\mingw492_32\bin文件夹下直接粘贴(路径根据自己的设置)
也可以放到原来工程代码中,头文件用双引号引出即可。
<!--小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xiaobo-Linux/ -->
在.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 guiQT += sqlgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = usersdataTEMPLATE = appSOURCES += main.cpp\ mainwindow.cppHEADERS += mainwindow.hFORMS += mainwindow.uiRESOURCES += \ icon.qrcRC_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_OBJECTpublic: 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
具体的实现代码
//小波Linux QQ463431476 cnblogs http://www.cnblogs.com/xiaobo-Linux/
#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();}
Qt model和tableview的使用: http://www.cnblogs.com/xiaobo-Linux/p/5176432.html
ui
rc资源图片加入
添加ico : http://www.cnblogs.com/xiaobo-Linux/p/5176432.html
软件演示:
最后形成一个独立的软件exe格式:Qt使用自带的windeployqt 生成exe来发布软件 : http://www.cnblogs.com/xiaobo-Linux/p/4678026.html
然后软件的安装打包:
最后用个打包软件来发布软件吧!!
这样就行了。