我的第一个软件。

基于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.com/xiaobo-Linux/p/4674986.html

此时,sql环境配置好,编写代码。

附上我的代码:

++++++++++++++++++project.pro里面的代码++++++++++++++++

#-------------------------------------------------
#
# Project created by QtCreator --21T13::
#
#-------------------------------------------------

QT       += core gui
QT += sql           # 引用数据库
greaterThan(QT_MAJOR_VERSION, ): QT += widgets

TARGET = project3
TEMPLATE = app

SOURCES += main.cpp\
        reminder.cpp

HEADERS  += reminder.h

FORMS    += reminder.ui
 #DESTDIR += C://   # 编译文件输出路径,不加此句默认在工程文件下创建.dbRC_FILE=icon.rc  #添加软件图标

+++++++++++++++++++reminder.h的头文件代码+++++++++++++++++++++++

#ifndef REMINDER_H
#define REMINDER_H

#include <QMainWindow>
#include <QSqlDatabase> //数据库类
#include <QSqlQuery>    //执行语句类
//#include <QSqlRecord>   //返回记录类
#include <QtSql>
#include <QApplication>
#include <QMessageBox>
#include <iostream>
//#include <QtDebug>

namespace Ui {
class Reminder;

}

class Reminder : public QMainWindow
{
    Q_OBJECT

public:
    );
    ~Reminder();

private slots:

   void on_save_clicked();

   void on_del_clicked();

   void select();

   void on_search_clicked();

   void on_back_clicked();

private:
    Ui::Reminder *ui;
    QSqlDatabase db;            //声明数据库类

};

#endif // REMINDER_H

++++++++++++++++++++++++main.cpp代码+++++++++++++++++++++++++++++

#include "reminder.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("reminder.db");
    if ( !db.open()){
    QMessageBox::critical(NULL, QObject::tr("Collection"), QObject::tr("failed to connect to database!"));
    ;
    }
    QSqlQuery query;
    query.exec("create table reminder (id integer PRIMARY KEY AUTOINCREMENT,主题 text,内容 text)");

    Reminder w;
    w.show();

    return a.exec();
}

+++++++++++++++++reminder.cpp代码+++++++++++++++++

#include "reminder.h"
#include "ui_reminder.h"

 Reminder::Reminder(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Reminder)
{
    ui->setupUi(this);
    setWindowTitle("小波的提醒备忘录V1.0");    setWindowIcon(QIcon("xiaobo.ico"));//设置软件图标
    select();//显示表格

}

Reminder::~Reminder()
{
    db.close();
    delete ui;
}

void Reminder::on_save_clicked()
{
  QSqlQuery query;
  query.prepare("insert into reminder (id,主题,内容)values(1:theme , :content )"); //id自动增加,先从1起,之后无需手动插入

  query.prepare("insert into reminder (主题,内容)values(:theme , :content )");

  query.bindValue(":theme",ui->textEdit->text());            //从输入框插入数据
  query.bindValue(":content",ui->textEdit_2->toPlainText());
  query.exec();

   select();//显示表格

}

void Reminder::on_del_clicked()
{
    QSqlQuery query;

    int curRow = ui->tableView->currentIndex().row();     //鼠标选择删除第几行

    QModelIndex index = ui->tableView->currentIndex();

    ).data().toInt();

    query.prepare("delete from reminder where id = :id");

    query.bindValue(":id",id);

    query.exec();
    select();

 }

void Reminder::select()
{  //将sql表格显示到tableView里
 QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);
 model->setQuery(QString("select *from reminder"));
 model->setHeaderData(,Qt::Horizontal,QObject::tr("ID"));
 model->setHeaderData(,Qt::Horizontal,QObject::tr("主题"));
 model->setHeaderData(,Qt::Horizontal,QObject::tr("内容"));
 ui->tableView->setModel(model);
}

 void Reminder::on_search_clicked()
 {    QSqlQuery query;
     ui -> tableView -> clearSpans(); //tableview清空
     QSqlQueryModel *model = new QSqlQueryModel(ui->tableView);

      query.prepare("select  *from reminder where 主题 = :theme ");  //like模糊查询没成功
      query.bindValue(":theme",ui->textEdit_3->text());

      query.exec();

      model->setQuery(query);

       model->setHeaderData(,Qt::Horizontal,QObject::tr("ID"));
       model->setHeaderData(,Qt::Horizontal,QObject::tr("主题"));
       model->setHeaderData(,Qt::Horizontal,QObject::tr("内容"));

        ui->tableView->setModel(model);
 }

  void Reminder::on_back_clicked()

    {
       select();

    }

++++++++++++++++reminder.ui++++++++++++++++++++++++++++

=============== 下面是演示软件的演示情况 ================

------------------------主界面 ------------------------------

-----------------检索---------------------------

Qt为生成的软件添加图标的方法:

1. 准备好ico图标文件名字为 xiaobo.ico,最好放在和.pro文件同一个文件夹中

这里在线生成的图标地址:http://www.ico.la/

2.创建一个叫icon.rc的文件,里面写上文本信息IDI_ICON1 ICON " xiaobo.ico",保存好

3.在pro文件中添加代码:RC_FILE=icon.rc

4.在MainWindow的构造函数中添加setWindowIcon(QIcon(" xiaobo.ico"));

5.再重新运行就ok了

======最后来发布软件=========

Qt使用自带的windeployqt 生成exe来发布软件,详见我的另外一篇博客:http://www.cnblogs.com/xiaobo-Linux/p/4678026.html

基于Qt5.5.0的sql,C++备忘录软件的编写的更多相关文章

  1. 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0

    作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...

  2. 基于Spark1.3.0的Spark sql三个核心部分

    基于Spark1.3.0的Spark sql三个核心部分: 1.可以架子啊各种结构化数据源(JSON,Hive,and Parquet) 2.可以让你通过SQL,saprk内部程序或者外部攻击,通过标 ...

  3. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  5. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  6. Qt5.7.0配置选项(configure非常详细的参数)

    configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译 ...

  7. 使用Qt5.7.0 VS2015版本生成兼容XP的可执行程序 good(从VS2012 update1开始支持xp和c++11)

    一.直接使用VS2012/VS2013/VS2015生成XP兼容的可执行程序 Visual Studio刚发布时没打补丁,称为RTM版,之后会陆续发布补丁,进行bug修复和功能增强.VS2010及之前 ...

  8. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  9. Win7(32bit)下Qt5.5.0和OpenCV2.4.9环境的搭建

    之前一直基于Windows平台(Win 7 32bit)使用VS2010做OpenCV的开发,现在开始学习在Windows 下使用Qt做OpenCV的开发.本文主要讲述Windows平台下(Win 7 ...

随机推荐

  1. CI框架源码阅读笔记5 基准测试 BenchMark.php

    上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功 ...

  2. Hibernate入门案例配置以及增、删、改、查看

    享受痛苦就是走向成功的第一步. 一.创建一个项目(lib里面是需要的夹包小奶瓶要导包) 二.书写大配置文件 大配置文件必须放置在项目根目录(专业classpath下):界定:就是src 1名称:hib ...

  3. IIS 7 托管管道模式 经典模式(Classic) 集成模式(Integrated) 分析与理解

    IIS 7.0 支持两种管道模式:一种是IIS 7.0最新提供的集成管道模式,另一种是经典管道模式,经典管道模式是由先前版本的IIS提供的. 我们可以通过应用程序池设置管道模式,这项功能对IIS管理员 ...

  4. jstl标签

    为什么提出jstl标签? Jsp中包含html标签+java片段+jsp片段使得jsp页面比较乱.提出:能不能把<% %>java片段用标签替换 jsp页面更简洁 <!-- 引入js ...

  5. According to TLD or attribute directive in tag file, attribute end does not accept any expressions

    问题描述: 在 JSP 页面中使用 JSTL 标签库,访问 JSP 页面时抛出了如下异常信息: org.apache.jasper.JasperException: /WEB-INF/manageUs ...

  6. Eclipse的SVN插件提示:验证验证位置时发生错误:"Unable to load default SVN Client“解决

    这个原因是你的机器上没有 JAVAHL 这个包, 这个是另外的一个开源组件, 所以, 在trigis的svn插件发行版里面没有这个东西,下载装上就是, 这个包在不同的系统上, 有不同的情况...详情见 ...

  7. ubuntu安装VNC、Xfce桌面

    1.首先安装xfce桌面环境 sudo apt-get -y install xfce4 2.安装vncserver sudo apt-get -y install vnc4server 3.设置访问 ...

  8. Ocrad.js – JS 实现 OCR 光学字符识别

    Ocrad.js 相当于是 Ocrad 项目的纯 JavaScript 版本,使用 Emscripten 自动转换.这是一个简单的 OCR (光学字符识别)程序,可以扫描图像中的文字回文本. 不像 G ...

  9. 原生JS:String对象详解

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  10. 总结CSS3新特性(Transform篇)

    概述: CSS3新添加的Transform可以改变元素在可视化区域的坐标(这种改变不会引起文档的重排,只有重排),以及形状,还有些3D形变.结合 Animation(这里以后会有个链接的) 能实现酷炫 ...