標籤:
我的第一個軟體。
基於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環境配置好,編寫代碼。
附上My Code:
++++++++++++++++++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
+++++++++++++++++++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"); 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++++++++++++++++++++++++++++
=============== 下面是示範軟體的示範情況 ================
------------------------主介面 ------------------------------
-----------------檢索---------------------------
基於Qt5.5.0的sql,C++備忘錄軟體的編寫