QT模型索引使用QModelIndex
QT模型索引使用QModelIndex
QModelIndex有三个要素:行row 列column 父节点索引parent
但是注意我们并不能定义一个QModelIndex
QModelIndex的构造函数QModelIndex()的功能是创建一个新的空的QModelIndex
QModelIdex()是一个空索引,它其实可以代表任意model中的顶层节点,例如TableModel中每个Item的父节点都是顶层节点,所以每个Item的索引中的parent都是QModelIndex;
可以获得QModelIndex 的方法有两种:
1.通过Model中的成员函数index()取得,
2.通过和Model绑定的View的成员函数取得,
举例:
class TabelModel : pulic QAbstractTableModel
auto table = new TableModel();
auto tableView = new QTableView();
tableView.setModel(table);
QModelIndex index1 = tableView.currentIndex ();//
//QModelIndex Model::index(int row, int column, QModelIndex parent)
QModelIndex index2 = tabel.index(0,0,QModelIndex());//
pro文件添加:
QT+=widgets
SOURCES += \
main.cpp
#include <QApplication>
#include <QTreeView>
#include <QDebug>
#include <QStandardItemModel>
int main(int argc, char *argv[])
{QApplication app(argc,argv);QStandardItemModel model;//创建标准项模型QStandardItem *parentItem=model.invisibleRootItem();//获取模型的根项(root Item),根项是不可见的QStandardItem *item0=new QStandardItem;//创建标准项0,并设置显示文本,图标和工具提示item0->setText("A");QPixmap pixmap0(50,50);pixmap0.fill("red");item0->setIcon(QIcon(pixmap0));item0->setToolTip("indexA");parentItem->appendRow(item0);//将创建的标准项作为根项的子项parentItem=item0;//将创建的标准项作为新的父项//创建新的标准项,它将作为item0的子项QStandardItem *item1=new QStandardItem;item1->setText("B");QPixmap pixmap1(50,50);pixmap1.fill("blue");item1->setIcon(QIcon(pixmap1));item1->setToolTip("indexB");parentItem->appendRow(item1);//创建新的标准项,这里使用另外一种方法来这是文本,图标和工具提示QStandardItem *item2=new QStandardItem;QPixmap pixmap2(50,50);pixmap2.fill("green");item2->setData("C",Qt::EditRole);item2->setData("indexC",Qt::ToolTipRole);item2->setData(QIcon(pixmap2),Qt::DecorationRole);parentItem->appendRow(item2);//在树型视图中显示模型QTreeView view;view.setModel(&model);view.show();//获取item0的索引并输出item0的子项数目,然后输出了item1的显示文本和工具提示QModelIndex indexA=model.index(0,0,QModelIndex());qDebug()<<"indexA row count:"<<model.rowCount(indexA);QModelIndex indexB=model.index(0,0,indexA);qDebug()<<"indexB text:"<<model.data(indexB,Qt::EditRole).toString();
qDebug()<<"indexB toolTip:"<<model.data(indexB,Qt::ToolTipRole).toString();return app.exec();
}
QT模型索引使用QModelIndex相关推荐
- Qt模型视图中的委托
文章目录 1 初探QT模型视图中的委托 2 自定义委托 3 深度解析视图与委托 3.1 实例1:自定义视图显示方式 3.2 实例2:自定义视图显示方式提升用户体验 1 初探QT模型视图中的委托 首先来 ...
- Qt模型、视图解读之视图
2.视图类 视图的概述: 视图包含了模型中的数据项,并将它们呈现给用户. 视图通常管理从模型获取数据的整体布局,它们可以自己渲染独立的数据项,也可以使用委托来处理渲染和编辑. 视图的特性: 视图还可以 ...
- Qt 模型视图框架解读之模型
Qt 模型视图框架 前后阅读的好几遍,要不是项目中需要处理一些相对比较多的数据,这部分内容估计不会去急着去理解. 首先来了解下什么是模型和视图框架吧: 一般地:MVC 设计模式包括三个元素: 表示数据 ...
- Qt - 模型/视图编程(MVC编程自定义模型)
模型/视图编程 Qt中的模型/视图架构用来实现大量的数据存储.处理及显示.MVC(Model-View-Controller)包括了3个组件:模型(Model)是应用对象,用来表示数据:视图(View ...
- QT学习笔记14(Qt模型视图结构)
一.基础知识 1.MVC设计模式:是一种与用户界面相关的设计模式,通过此模式,可以有效的分离数据和用户界面. MVC包括三个要素: 表示数据的模型(Model):应用程序的对象 表示用户界面的视图(V ...
- Qt 模型视图编程之表头设置
背景 Qt 模型视图编程中模型定义了标准接口对数据进行访问,可根据需求继承对应的抽象模型类来实现自定义的数据模型.一个基本的数据模型至少要实现以下虚函数: ①.rowCount:行数,返回要显示多少行 ...
- Qt模型视图框架:QListView
一.描述 QListView 将存储在模型中的项目呈现为简单的非分层列表或图标集合.此视图不显示水平或垂直标题. QStandardItemModel * model = new QStandardI ...
- Qt模型model、视图view、代理
例子为qt5应用及实例第8章 MVC是一种与用户界面相关的设计模式.通过使用此模型,可以有效地分离数据和用户界面.MVC设计模式包含三要素:表示数据的模型(Model).表示用户界面的视图(View) ...
- Qt 模型视图编程的简单实例
导言: 当遇到一个相对复杂的项目软件的时候,处理的数据量相对较大,这时候从软件设计的角度,一般都会考虑运用模型视图的架构. Qt关于MVC编程组成部分: 大体上,模型.视图架构中众多类可以分为3组:模 ...
最新文章
- 张一鸣宣布卸任字节CEO!网友:完不成OKR被优化了!
- 移动IM开发指南2:心跳指令详解
- jsp页面获取后台传过来的list集合的长度
- vue-day03-vue组件化开发
- 我们都笑了freeeim
- python基础-深浅拷贝
- python判定串口已连接_python 自动识别并连接串口的实现
- Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成
- 换一种态度看程序员(转)
- 分库分表 vs NewSQL,怎么选择?
- CF620E New Year Tree
- 推荐C语言视频<<跟着星仔学C语言>>
- 【计算理论】非确定性有限自动机 ( NFA ) 转换成 确定性有限自动机 ( DFA )
- 计算机表格快捷键,EXCEL表格所有的快捷键《excel一键到底 快捷键》
- 并(zhao)查(die)集详解以及其优化版本
- SAP BDC的应用
- 洛谷P1510-精卫填海(01背包)
- 让HTML页面也可以实现全屏效果
- 大学临近结束回望高中
- 【前端面试之Vue】
热门文章
- QML播放器切换文件路径
- 【学术交流】计算机国际会议中proceedings,conference,paper,workshop,demo的都是什么意思
- LevelDB的算分逻辑
- java计算机毕业设计医院门诊挂号系统源程序+mysql+系统+lw文档+远程调试
- google maps api
- 基于51单片机空气环境粉尘检测PM2.5 风扇控制系统设计
- Jira使用浅谈篇一
- 百度音乐 android,Android 百度音乐 - CNMO
- mysql 8.0.21 对用户授权报错 near ‘IDENTIFIED BY ‘123456‘ with grant option‘ at line 1
- HashSpace:探索无国界社交生态链的价值潜力