基於Qt5.5.0的sql,C++備忘錄軟體的編寫

來源:互聯網
上載者:User

標籤:

我的第一個軟體。

基於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++備忘錄軟體的編寫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.