91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++?Qt數據庫與TreeView組件綁定的方法是什么

發布時間:2021-12-07 14:01:50 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容主要講解“C/C++ Qt數據庫與TreeView組件綁定的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C/C++ Qt數據庫與TreeView組件綁定的方法是什么”吧!

我們先以TreeView組件為例,簡單介紹一下如何實現組件與數據的綁定,首先我們需要創建一個表并插入幾條測試記錄,運行如下代碼實現建庫建表.

#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QSqlRecord>
#include <iostream>
#include <QStringList>
#include <QString>
#include <QVariant>

#include <QDataWidgetMapper>
#include <QtSql>

void Init()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./lyshark.db");
     if (!db.open())
     {
            std::cout << db.lastError().text().toStdString()<< std::endl;
            return;
     }

    // 執行SQL創建表
    db.exec("DROP TABLE LyShark");
    db.exec("CREATE TABLE LyShark ("
                    "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                    "name VARCHAR(40) NOT NULL, "
                    "age INTEGER NOT NULL)"
         );

    // 逐條插入
    db.exec("INSERT INTO LyShark(name,age) VALUES('admin',22)");
    db.exec("INSERT INTO LyShark(name,age) VALUES('lyshark',25)");
    db.exec("INSERT INTO LyShark(name,age) VALUES('zhangsan',22)");
    db.exec("INSERT INTO LyShark(name,age) VALUES('wangwu',22)");

    db.commit();
}

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

執行建庫建表后,數據庫內記錄如下:

C/C++?Qt數據庫與TreeView組件綁定的方法是什么

有了數據表以后,接著就需要將數據表中的記錄與View組件進行綁定,綁定組件首先需要調用QSqlQueryModel查詢數據表中的記錄,當查詢到記錄以后,調用QItemSelectionModel()將該記錄綁定到對應的模型中,最后調用ui->treeView->setModel(qryModel);以及ui->treeView->setSelectionModel(theSelection);將該模型顯示在TreeView組件內,這段代碼如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QSqlRecord>
#include <iostream>
#include <QStringList>
#include <QString>
#include <QVariant>

#include <QDataWidgetMapper>
#include <QtSql>

#include <QStandardItem>
#include <QStringList>
#include <QStringListModel>

// 定義數據模型指針
QSqlQueryModel *qryModel;          // 數據模型
QItemSelectionModel *theSelection; // 選擇模型
QDataWidgetMapper *dataMapper;     // 數據界面映射

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

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./lyshark.db");
     if (!db.open())
     {
            std::cout << db.lastError().text().toStdString()<< std::endl;
            return;
     }

     // 查詢數據表中記錄
     qryModel=new QSqlQueryModel(this);
     qryModel->setQuery("SELECT * FROM LyShark ORDER BY id");
     if (qryModel->lastError().isValid())
     {
         return;
     }

     // 設置TableView表頭數據
     qryModel->setHeaderData(0,Qt::Horizontal,"ID");
     qryModel->setHeaderData(1,Qt::Horizontal,"Name");
     qryModel->setHeaderData(2,Qt::Horizontal,"Age");

     // 將數據綁定到模型上
     theSelection=new QItemSelectionModel(qryModel);
     ui->treeView->setModel(qryModel);
     ui->treeView->setSelectionModel(theSelection);
     ui->treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
}

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

運行代碼后,程序會從數據庫內取出結果并輸出到TreeView組件上:

C/C++?Qt數據庫與TreeView組件綁定的方法是什么

到此,相信大家對“C/C++ Qt數據庫與TreeView組件綁定的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南溪县| 中卫市| 香港| 手机| 漳浦县| 新干县| 海伦市| 临猗县| 乐都县| 德格县| 土默特右旗| 莲花县| 邢台市| 崇阳县| 延边| 安泽县| 楚雄市| 台中市| 徐州市| 云浮市| 彭山县| 平利县| 巴里| 于田县| 永平县| 玛曲县| 贵州省| 镇雄县| 黄梅县| 潍坊市| 尉犁县| 邛崃市| 平湖市| 唐山市| 洛宁县| 海淀区| 荣昌县| 大城县| 加查县| 平顺县| 鹰潭市|