QTableView与QStandardItemModel基本使用方法

对表格型数据,Qt有现成的模型/视图类,QStandardItemModel类和QTableView类。

模型类提供数据,视图类则负责展示数据。所以数据及数据的相关信息(如文本大小、颜色、数据类型等)由模型类(QStandardItemModel)管理,数据的显示(如表格是否可以编辑、选择方式、行列的大小策略等)由视图类(QTableView)管理。

所以Qt表格模型和视图的使用步骤大致如下:

1. 创建模型对象

1

QStandardItemModel *import_model = new QStandardItemModel(this);

2. 添加标题

1

2

3

4

import_model->setHeaderData(0,Qt::Horizontal,tr("location"));

import_model->setHeaderData(1,Qt::Horizontal,tr("status"));

3. 添加数据行

1

2

3

import_model->setItem(i,0,new QStandardItem(a_data_item->location));

4. 修改数据的属性

1

2

3

4

import_model->item(i,1)->setTextAlignment(Qt::AlignCenter);

import_model->item(i,1)->setBackground(QBrush(status_color));

5. 将模型设置给视图

1

2

3

file_view->setModel(import_model);

6. 调整视图属性

1

2

3

file_view->horizontalHeader()->setResizeMode(0,QHeaderView::Stretch);

时间: 2024-10-05 06:05:11

QTableView与QStandardItemModel基本使用方法的相关文章

QStandardItemModel简单好用,QTableView带进度条

类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构来保存数据.与此不同,类QStandardItemModel负责保存数据,每个数据项被表示为类QStandardItem的对象.我们首先阐述如何使用类QStandardItem保存一个数据项,再阐述如何使用类QStandardItemModel将这些数据项组织起来,形成列表.表格或者树,以供其他视图类显示. 理论参考

细说Qt中的MVC (一)

好久不写博客了,最近写了不少Qt相关的代码,在此总结一下个人对Qt中MVC的一点理解.MVC全称是 Model View Controller,是一种非常非常流行的架构模式,相关MVC具体的,网上已经非常非常详尽了,不赘述了. 关于Qt中的MVC 其实Qt中的MVC并不叫MVC,而是叫“MVD”,Qt中没有Controller的说法,而是使用了另外一种抽象:Delegate (委托),其行为和传统的MVC是相同的.写过C#的同学肯定对delegate就不陌生了,这里delegate的用法就是负责

QT Model View Controller 使用和认识

MVC全称是 Model View Controller,是一种非常非常流行的架构模式,相关MVC具体的,网上已经非常非常详尽了,不赘述了. 关于Qt中的MVC 其实Qt中的MVC并不叫MVC,而是叫"MVD",Qt中没有Controller的说法,而是使用了另外一种抽象: Delegate (委托) ,其行为和传统的MVC是相同的.写过C#的同学肯定对delegate就不陌生了,这里delegate的用法就是负责协调Model和View之间的数据.其思想如下图所示: Model是唯一

QT开发(八)——QT单元视图组件

QT开发(八)--QT单元视图组件 QT中有四种单元视图组件,分别为列表视图QListView.树形视图QTreeView.表格视图QTableView.列视图QColumnView. 一.QListView列表视图 1.QListView组件简介 QListView列表视图,继承自QAbstractItemView.QListView是基于模型的列表/图标视图,不显示表头和表框,为Qt的模型/视图结构提供了更灵活的方式. 2.QListView组件属性 QListView组件属性设置: A.n

第61课 模型视图中的委托(上)

1. Qt模型视图对用户输入的处理 (1)传统的MVC设计模式 (2)Qt中的模型视图设计模式如何处理用户输入? ①视图中集成了处理用户输入的功能(即委托) ②视图将用户输入作为内部独立的子功能来实现 ③模型负责组织数据,视图负责显示数据,委托则用于编辑修改数据. 2. 模型视图中的委托 (1)委托(Delegate)是视图中处理用户输入的部件(如编辑框.单选按钮等) (2)视图可以设置委托对象用于处理用户输入 (3)委托对象负责创建和显示用户输入的上下文(内容),如编辑框的创建和显示. (4)

QT委托demo

class SpinBoxDeegate1 :public QStyledItemDelegate{ Q_OBJECTpublic: SpinBoxDeegate1(QObject* parent = 0); QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor

第57课 模型视图设计模式(下)

1. Qt中标准模型定义 (1)预期的模型逻辑结构 (2)代码实现 //main.cpp #include "Widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); } //Widget.h #ifndef WIDGET_H #define WIDGET_H #in

Qt之课外实践——文件操作(简单清道夫)

说明:这个小项目是关于文件操作的.主要的功能有:重复文件的查找(根据文件的大小),说白了,就是讲大小相同的文件在一起显示出来,供用户自由的选择删除.这个360云盘里的文件去重还差的很远.还有空文件夹的查找(我们的思想是:如果一个目录下面只有.和..2个目录,则,这个文件夹就是空的.但是我们不包含文件里面套有空文件夹.),以及垃圾文件的查找(根据文件的后缀,简单判断的.). 窗体主界面: 首先程序运行前,会弹出提示对话框. 代码如下: mainwindow.h #ifndef MAINWINDOW

QTableView的表格项中加入图标的方法(重载View::mouseMoveEvent,并使用View::setIconSize函数设置图标的大小)

当在使用表格视图的时候,需要在表格每一行前面加入图标,应该怎么做呢?Qt中通过使用MVC的处理方式,很容易做到这一点,具体实现如下: 先贴出图,让大家一睹为快 下面我就来介绍一下,上图的灯泡是怎么实现的,通过重载QAbstractTableModel中的data方法,如下:(CTblModel 派生自QAbstractTableModel) [cpp] view plain copy QVariant CTblModel::data(const QModelIndex &index, int r