Qt SQLite データ書き込み

※ 現段階では書捨てです。後日正しく直します。

.pro ファイルにsqlを追加

QT       += core gui sql

UIの構成

VBoxLayoutにQTextEditorとQPushButtonを追加したシンプルなUIです。

メインコード

#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QTextEdit>
#include <QPushButton>
#include <QDebug>
#include <QObject>

#include <QSqlDatabase>
#include <QSqlQuery>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    
    // GUI 初期化
    QWidget *window             = new QWidget;
    QVBoxLayout *MainLayout     = new QVBoxLayout;
    QTextEdit *Editor           = new QTextEdit;
    QPushButton *Run            = new QPushButton("追加");
    
    window->setWindowTitle("SQLite GUI サンプル");
    window->resize(500, 500);


    // Button クリックイベント
    QObject::connect(Run, &QPushButton::clicked, [=]{
        
       qDebug()<< "DB Open or Create";
       // データベースを開く (無い場合は作成)
       QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
       db.setDatabaseName("./dbname.sqlite3");
       db.open();

       // テーブル作成
       QSqlQuery query(db);
       query.exec("create table tablename(id INTEGER PRIMARY KEY AUTOINCREMENT, note TEXT)");

       // テーブルに値追加
       query.prepare("insert into tablename (note) values (?)");
       query.bindValue(0, Editor->toPlainText());
       query.exec();

       db.close();
   });


    MainLayout->addWidget(Editor);
    MainLayout->addWidget(Run);

    window->setLayout(MainLayout);
    window->show();
    return a.exec();
}

コメント

このブログの人気の投稿

Qt ウィンドウのあれこれ

Qt setWindowFlagsについて

Qt レイアウト 余白の処理