Qt5.5.0施用mysql编写小软件源码讲解—顾客新闻登记表

Qt5.5.0用到mysql编写小软件源码讲解—顾客新闻登记表

sqlite,贰个私家觉得相比简单小巧的软件。

上面就怎么样编写怎么着宣布打包来介绍一下呢!

先下载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/
–>

sqlite 1

sqlite 2

在.pro文件里输入

Qt += sql

sqlite 3

然后实施以下Qmake识别mysql

这么在头文件中援引库函数即可了:

sqlite 4

 

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

sqlite 5

 

 

sqlite 6

 

rc能源图形进入

添加ico : http://www.cnblogs.com/xiaobo-Linux/p/5176432.html

sqlite 7

 

软件演示:

sqlite 8

 

sqlite 9

 

 

sqlite 10

 

最后形成叁个独门的软件exe格式:Qt使用自带的windeployqt
生成exe来宣布软件
 :
http://www.cnblogs.com/xiaobo-Linux/p/4678026.html

 

然后软件的设置打包:

最终用个包裹软件来发表软件吧!!

sqlite 11

 

那样就行了。

 

网站地图xml地图