Qt5.5.0使用mysql編寫小軟件源碼講解


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 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

具體的實現代碼

//小波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

 

然后軟件的安裝打包:

最后用個打包軟件來發布軟件吧!!

 

這樣就行了。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com