基于Qt5.5.0的sql,C++备忘录软件的编写
来源:互联网 发布:友贷资本网络贷款 编辑:程序博客网 时间:2024/05/29 08:31
http://www.cnblogs.com/xiaobo-Linux/p/4676950.html
我的第一个软件。
基于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 2015-07-21T13:12:40##-------------------------------------------------QT += core guiQT += sql # 引用数据库greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = project3TEMPLATE = appSOURCES += main.cpp\ reminder.cppHEADERS += reminder.hFORMS += reminder.ui #DESTDIR += C:// # 编译文件输出路径,不加此句默认在工程文件下创建.db
RC_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_OBJECTpublic: explicit Reminder(QWidget *parent = 0); ~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!")); return 0; } 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(); int id=index.sibling(curRow,0).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(0,Qt::Horizontal,QObject::tr("ID")); model->setHeaderData(1,Qt::Horizontal,QObject::tr("主题")); model->setHeaderData(2,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(0,Qt::Horizontal,QObject::tr("ID")); model->setHeaderData(1,Qt::Horizontal,QObject::tr("主题")); model->setHeaderData(2,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
cnblog:http://www.cnblogs.com/xiaobo-Linux
作者:小波Linux
出处:http://www.cnblogs.com/xiaobo-Linux/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- 基于Qt5.5.0的sql,C++备忘录软件的编写
- 基于Qt5.5.0的sql,C++备忘录软件的编写
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
- C的IO备忘录
- 基于linux用C语言编写的局域网通信软件(在ubuntu上正常运行)
- 基于Qt5的QGIS编译
- 用java编写的“私人备忘录”
- 我的C/C++备忘录
- QT5串口编写简单的上位机
- QT5串口编写简单的上位机
- 基于easyui的备忘录的实现
- 基于UDP的文件传输软件 (C#)
- 用cmake构建基于qt5.8.0的qt5项目
- 基于thinkphp的一个通讯备忘录
- 常用的linux配置和软件备忘录
- 基于Qt5图形视图框架的“俄罗斯方块”
- 基于FL2440的QT5.6.0移植记录
- 【备忘录-c/c++】typedef的使用总结
- [转]VC中char,TCHAR,WCHAR总结
- Bootstrap,随想
- virtualbox ubuntu14.04共享文件夹
- poj 3320
- HDU 5416 dfs
- 基于Qt5.5.0的sql,C++备忘录软件的编写
- 86. Partition List
- Android Service完全解析
- jmeter随笔(13)--jmeter3.0 post body乱码问题
- java基础之注解
- 让Linux流畅你的工作流
- 在vs2013里访问数据库
- 找出ip数据包在网络中经过的路由
- 函数表驱动法