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

然后软件的安装打包:

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

这样就行了。

时间: 2024-08-08 04:25:53

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

基于Qt5.5.0的sql,C++备忘录软件的编写

我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download.qt.io/official_releases/qt/5.5/5.5.0/ 下载 qt-opensource-windows-x86-mingw492-5.5.0.exe即可. 话不多说,第一先是基于Qt5.5.0的sql的配置,这里详见我的另外一篇博客:http://www.cnblogs.co

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql (二)

mysql 简介: MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性.目前其属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言. 安装环境: 系统: centos 7.0 最小化安装 软件

Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx (一)

nginx简介:       Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日. 其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Apache (一)

Apache 简介: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中. 安装环境: 系统: centos 7.0 最小化安装 软件:httpd-2.4.26 依赖包:apr .apr-util .pcre .gcc .gcc-c++ .perl-dvel.perl.openssl .openssl-

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装php (三)

PHP简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP 独特的语法混合了C.Java.Perl以及PHP自创的语法.它可以比CGI或者Perl更快速地执行动态网页.用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标

Mysql学习之--卸载源码mysql-5.6安装mysql-5.5

Mysql学习之--卸载源码mysql-5.6安装mysql-5.5 系统环境: 操作系统:RedHat EL6 DB Soft:  Mysql 5.5.12     Mysql 在linux下的安装方式有两种版本,一种为Binary(二进制),另外一种为Source(源码包),本文为Source Install方式. 由于,本机已经安装了mysql-5.6的版本,前面的版本采用源码包安装,只需要删除相应的安装文件即可! 1.卸载mysql-5.6 删除/var/lib/mysql下的文件: [

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

21款网页版html5小游戏源码

html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js html5 2048数字游戏源码_2048网页版源码下载 html5盲打高手打飞字游戏下载_网页版英文打飞字游戏源码下载 jQuery flappy bird电脑版小游戏源码下载 网页版html5 3d俄罗斯方块游戏源码下载 jQuery html5迷宫游戏源码下载 html5网页游戏仿flappy

【小程序源码案例】微信小程序项目开发案例分享

作者:web小二本文标签: 微信小程序 小程序源码案例 小程序项目小程序的开发,并不是适合所有公司,我今天跟大家分享小程序方面的教程,主要是供大家学习使用.学习这种东西,有时候则是单纯的喜欢,没有任何目的,很单纯的为了好玩,记得很早之前学flash,没有想法,就是觉得好玩,纯娱乐爱好而已.到后来玩视频剪辑也是出于同样的原因,不图钱财名利,只是图自己个人爱好娱乐. 但是,学习,有时候则是需要有明确目的,特别是关系到自己吃饭问题的时候,你就需要非常有目的去学习,并且还需要制定好学习的计划与目标,希望