以下是一个简单的示例代码,演示了如何使用 Qt 和 SQLite 实现用户模式选择功能,并将选择的模式保存到数据库,并在另一个界面显示最新保存的模式信息。

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtSql>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_modeComboBox_currentIndexChanged(const QString &mode);
    void on_showButton_clicked();

private:
    Ui::MainWindow *ui;
    QSqlDatabase db;
};

#endif // MAINWINDOW_H


// mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 连接到 SQLite 数据库
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("database.db");
    if (!db.open()) {
        qDebug() << "无法打开数据库";
    }

    // 创建数据表
    QSqlQuery query;
    query.exec("CREATE TABLE IF NOT EXISTS modes (id INTEGER PRIMARY KEY AUTOINCREMENT, mode TEXT)");

    // 添加模式选项到 ComboBox
    ui->modeComboBox->addItem("模式1");
    ui->modeComboBox->addItem("模式2");
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_modeComboBox_currentIndexChanged(const QString &mode)
{
    // 将选中的模式插入到数据库表中
    QSqlQuery query;
    query.prepare("INSERT INTO modes (mode) VALUES (:mode)");
    query.bindValue(":mode", mode);
    if (!query.exec()) {
        qDebug() << "插入数据失败";
    }
}

void MainWindow::on_showButton_clicked()
{
    // 显示数据库表的最新信息
    QSqlQuery query;
    query.exec("SELECT * FROM modes ORDER BY id DESC LIMIT 1");
    if (query.next()) {
        QString mode = query.value("mode").toString();
        qDebug() << "最新模式:" << mode;
    }
}


// main.cpp
#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

在这个示例中,我们创建了一个名为modes的数据库表,它有两个列:idmodeid是自增的主键,mode保存用户选择的模式。

在主界面上,我们添加了一个QComboBox控件,用于选择模式。当用户选择一个模式时,我们将其插入到数据库表中。

另外,我们还添加了一个按钮,当用户点击该按钮时,我们从数据库表中获取最新插入的模式,并在控制台中显示出来。

请注意,该示例假设您已经安装了 Qt 和 SQLite,并且将 SQLite 数据库文件命名为database.db,并放置在与可执行文件相同的目录中。如果数据库文件不存在,它将自动创建。

Qt 和 SQLite 实现模式选择和数据保存

原文地址: https://www.cveoy.top/t/topic/fBhN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录