> 文章列表 > QT sql查询模型,视图显示

QT sql查询模型,视图显示

QT sql查询模型,视图显示

SQL模型

  • 定义
  • 定义sql查询模型
  • 查询
  • 设置格式
  • 创建视图并显示
  • setHeaderData() 函数

定义

SQL 查询模型(QSqlQueryModel)是 Qt 提供的一种数据模型,用于执行 SQL 查询并返回结果集。它继承自
QSqlTableModel 类,可以使用 QSqlQuery 对象执行任意的 SQL
语句,并将查询结果封装成一个二维表格形式的数据模型,方便在 Qt 应用程序中进行展示和操作。

QSqlQueryModel 可以通过 setQuery() 函数设置要执行的 SQL 语句,并通过 setHeaderData()
函数设置表头信息。同时还提供了一些常用的函数,如 rowCount()、columnCount()、data()
等,可以方便地获取模型中的行数、列数和单元格数据等信息。

与其他 Qt 数据模型类似,QSqlQueryModel 也可以与视图控件(如 QTableView、QListView
等)进行绑定,从而实现查询结果的可视化展示。此外,还可以通过对 QSqlQueryModel 进行子类化来实现更复杂的功能需求。

定义sql查询模型

QSqlQueryModel *model= new QSqlQueryModel(this);

查询

model->setQuery("select * from student"); //之前定义的student表
  • student表
QSqlQuery query1;query1.exec("create table student (id int primary key, ""name varchar , course int)");query1.exec("insert into student values(0, '第一',11)");query1.exec("insert into student values(1, '第二',12)");query1.exec("insert into student values(2, '第三',13)");

设置格式

model->setHeaderData(0,Qt::Horizontal,tr("学号"));
model->setHeaderData(1,Qt::Horizontal,tr("姓名"));
model->setHeaderData(2,Qt::Horizontal,tr("课程"));

创建视图并显示

QTableView *view=new QTableView(this);  //creat
view->setModel(model); 		///将查询模型绑定到视图中
setCentralWidget(view);    ///在 central位置显示

setHeaderData() 函数

setHeaderData() 函数用于设置表头信息,其参数如下:

  • 第一个参数 column 表示要设置的列号,从 0 开始计数。

  • 第二个参数 orientation 表示表头的方向,可以是 Qt::Horizontal(水平方向)或 Qt::Vertical(垂直方向)。

  • 第三个参数 data 表示要设置的表头信息,可以是字符串、图标等任何类型的数据。

  • 第四个参数 role 表示要设置的数据角色,Qt 提供了很多内置的角色类型,比如 Qt::DisplayRole(显示文本)、Qt::DecorationRole(图标等装饰性数据)、Qt::ToolTipRole(提示信息)等。默认情况下使用 Qt::DisplayRole 角色。

setHeaderData(column,Qt::Horizontal or ,Qt::Vertical,tr("information"));// 常用 

其中最重要的是第一个和第三个参数,即要设置的列号和表头信息。

QT sql查询模型,视图显示

利用视图将sql查询信息输出到窗口中