C/C++ Qt数据库与TreeView组件绑定的方法是什么
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"C/C++ Qt数据库与TreeView组件绑定的方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C/C++ Qt数据库与Tre
千家信息网最后更新 2026年11月02日C/C++ Qt数据库与TreeView组件绑定的方法是什么
本篇内容主要讲解"C/C++ Qt数据库与TreeView组件绑定的方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C/C++ Qt数据库与TreeView组件绑定的方法是什么"吧!
我们先以TreeView组件为例,简单介绍一下如何实现组件与数据的绑定,首先我们需要创建一个表并插入几条测试记录,运行如下代码实现建库建表.
#include#include #include #include #include #include #include #include #include #include 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();}
执行建库建表后,数据库内记录如下:
有了数据表以后,接着就需要将数据表中的记录与View组件进行绑定,绑定组件首先需要调用QSqlQueryModel查询数据表中的记录,当查询到记录以后,调用QItemSelectionModel()将该记录绑定到对应的模型中,最后调用ui->treeView->setModel(qryModel);以及ui->treeView->setSelectionModel(theSelection);将该模型显示在TreeView组件内,这段代码如下:
#include "mainwindow.h"#include "ui_mainwindow.h"#include#include #include #include #include #include #include #include #include #include #include #include #include // 定义数据模型指针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组件绑定的方法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
组件
模型
数据库
方法
代码
数据表
查询
内容
学习
运行
实用
更深
兴趣
实用性
实际
指针
操作简单
更多
朋友
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小米移动互联网科技园
互联网科技有限公司图片
互联网金融公司科技
以房互联网科技
远信互联网科技
紫鲸互联网科技
奔汉互联网科技
广州紫鲸互联网科技
云创客互联网科技公司
互联网之后的科技是什么
重庆威客帮互联网科技
福建科技产业互联网发展
互联网软件和科技
南博望互联网科技有限公司
上海科技产业互联网平台
电子商务与互联网科技的关系
互联网科技资金流入
从那以后互联网科技有限公司
艺电能源互联网科技有限公司招聘
陕西彩京云互联网科技有限公司
互联网科技名片
湖北九亚互联网络科技有限公司
河南真二互联网科技有限公司
致骋互联网科技
广州凡科互联网科技
广州紫鲸互联网科技
北京三清互联网科技
半导体行业属于互联网高科技类吗
郑州欣桑互联网科技有限公司
科技互联网企业在行动