zoukankan      html  css  js  c++  java
  • Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

    Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表

    一个个人觉得比较简单小巧的软件。

    下面就如何编写如何发布打包来介绍一下吧!

    先下载mysql的库文件链接:http://files.cnblogs.com/files/xiaobo-Linux/mysql.zip

    把两个文件放入 Qt目录Qt5.5.05.5mingw492_32in文件夹下直接粘贴(路径根据自己的设置)

    也可以放到原来工程代码中,头文件用双引号引出即可。

    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(); }

    可以自行购买,在某宝上,扫一扫就行了。

      Qt model和tableview的使用

    ui

    rc资源图片加入

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

    软件演示:

    最后形成一个独立的软件exe格式:Qt使用自带的windeployqt 生成exe来发布软件 : http://www.cnblogs.com/zhaocundangp/4678026.html

    然后软件的安装打包:

    最后用个打包软件来发布软件吧!!

    这样就行了。

  • 相关阅读:
    ListBox的数据绑定
    GridView中加入新行方法
    一个事务的例子
    用sql语句查询从N条到M条的记录
    用户注册表中日期输入的解决方案
    对分页控件进行分页的封装
    我的触发器
    缓存DataSet以提高性能
    网站访问统计在Global.asax中的配置
    给表格控件绑定数据库内容的封装
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/5186118.html
Copyright © 2011-2022 走看看