QT模型索引使用QModelIndex

news/2024/5/19 4:52:04/文章来源:https://blog.csdn.net/txwtech/article/details/127156835

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();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_18311.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库-MySQL基础(9)-多表关系

目录 概述 1、一对多 2、多对多 3、一对一 多表查询概述 多表查询分类 1、连接查询 2、子查询 概述 项目开发中&#xff0c;在进行数据库表结构关系设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析设计表结构&#xff0c;由于业务之间相互关联…

5、android 数据存储(2)(数据库SQLite:SQLiteDatabase)

1、数据库管理器SQLiteDatabase SQLiteDatabase是SQLite的数据库管理类&#xff0c;它提供了若干操作数据表的API&#xff0c;常用的方法有3类&#xff1a; 1. 管理类&#xff0c;用于数据库层面的操作。 openDatabase&#xff1a;打开指定路径的数据库。 isOpen&#xff1a…

机器学习之学习曲线绘制Python-skleran

学习曲线作用&#xff1a; 学习曲线是什么&#xff1f;简单来说&#xff0c;就是用学习曲线(learning curve)来判断模型状态&#xff1a;过拟合还是欠拟合。 学习曲线定义&#xff1a; 学习曲线是根据不同训练集大小&#xff0c;模型在训练集和验证集上的得分变化曲线。 学…

虚拟机搭建Redis 远程密码可访问,并且后台运行

1、关闭系统防火墙 操作指令备注查看防火墙状态systemctl status firewalld / firewall-cmd --state暂时关闭防火墙systemctl stop firewalld永久关闭防火墙(禁用开机自启)systemctl disable firewalld下次启动,才生效暂时开启防火墙systemctl start firewalld永久开启防火墙(…

基于python+django框架+Mysql数据库的校园新生报到系统设计与实现

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于python的校园新生报到系统&#xff0c;整体网站系统基于B/S架构&#xff0c;技术上使用基于python的Django框架来实现&#xff1b;通过后台添加设置校园信息、录入和管理校园资讯、校园风光、学校分院信…

Linux 用户管理 文件目录指令 时间日期指令 搜索查找类 解压压缩类

目录 用户管理 添加用户: 指定/修改密码 删除用户 查询用户信息指令 切换用户 查看当前用户/登录用户 用户组 修改用户的组 用户和组相关文件 指定运行级别1 指定运行级别2 找回root密码 帮助指令 文件目录指令 文件目录类 pwd 指令 ls 指令 cd 指令 mkdir指…

Android Automotive(五) CarService

Android Automotive&#xff08;五&#xff09; CarService CarService是Android Automotive在系统框架层的核心服务。它类似SystemServer在服务内部管理着数十个子服务。 启动流程 CarService是由SystemServer启动的&#xff0c;启动流程如下。 SystemServer 启动CarServi…

【GNN从入门到精通】第一章 图的基本知识

文章目录一、图的表示1.1 什么是图&#xff1f;二、图的特征2.1 子图2.2 连通分量2.3 接通图2.3.1 无向图连通图2.3.2 有向连通图2.4 最短路径2.5 图直径三、图中心性3.1 度中心性3.2 特征向量中心性3.3 中介中心性3.4 连接中心性四、网页排序算法4.1 PageRank4.2 HITS4.3 例子…

游程描述的任意区域最小旋转矩形算法实现

效果 采用游程描述了多个区域,经过算法计算,找到最小包围矩形。 白色是指定的区域,黄色是该区域的最小旋转矩形。 算法原理 有时候算法不一定很高深,只要把道理点破,实现起来很简单,难的是最开始的算法构思过程。 区域最小旋转矩形的算法原理也很简单:将区域从0到90…

Dapper 在继承层次结构中处理数据

Dapper 包含一项功能,用于处理可能逐行映射到不同类型的数据。在处理使用Table Per Hierarchy存储模式的继承层次结构时,此功能特别有用,即一个表用于表示层次结构中的所有类。“鉴别器”列用于区分类型。 以下类定义表示基于抽象Contract类型的继承层次结构。还定义了三种派…

16.python实现线性单元和梯度下降-10月4日编程作业-Relu函数

目录 课堂笔记 代码实现1 运行结果1 代码实现2 评定一个学生的综合绩点 运行结果2 小结 课堂笔记 代码实现1 from cgi import print_environ from functools import reduce import numpy as np#定义感知器类 class perceptron(object):#感知器初始化函数(参数个数&…

ASP.NET Core--项目基础与搭建

文章目录项目基础与搭建创建项目ViewImports.cshtmlappsettings.json执行顺序Program.cs类startup.cs类项目基础与搭建 创建项目 ViewImports.cshtml ViewImports文件可以影响文件夹层次结构中的所有视图 ViewImports文件是我们可以编写代码并放置通用指令以引入我们的视图所需…

数据结构 - 单链表

文章目录一、单链表1.单链表的定义1.1概念介绍2.如何用代码来定义一个单链表*知识点3.单链表的插入删除未完待续...一、单链表 1.单链表的定义 单链表是一种链式存取的数据结构&#xff0c;用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的&…

Halcon快速入门笔记3

read_image (Image, ‘surface_scratch’) invert_image (Image, ImageInverted) get_image_size (ImageInverted, Width, Height) gen_sin_bandpass (ImageBandpass, 0.4, ‘none’, ‘dc_center’, Width, Height) fft_generic (ImageInverted, ImageFFT, ‘to_freq’, -…

【JavaWeb】前置知识:CSS与JavaScript知识汇总

本文被 系统学习JavaWeb 收录&#xff0c;点击订阅 写在前面 大家好&#xff0c;我是黄小黄&#xff01;经过上一篇 从Html入门JavaWeb 的学习&#xff0c;想必大家对标签都有了一定的认识。本文将通过案例&#xff0c;讲解CSS与JavaScript的基础知识&#xff0c;文章内容比较…

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java

SSM+Vue个人健康管理系统 个人健康档案系统 个人健康信息管理系统Java💖🔥作者主页:计算机毕设老哥🔥 💖精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻Java实战项目专栏 Python实战项目专栏 安卓实战项目专栏 微信小程序实战项目专栏目录Java实战项…

【数据结构从0到1】第九篇:图

文章目录一、图的基本概念二、图的存储结构2.1 邻接矩阵2.2 邻接表三、图的遍历3.1 图的广度优先遍历3.2 图的深度优先遍历四、最小生成树4.1 Kruskal算法4.2 Prim算法五、最短路径5.1 单源最短路径--Dijkstra算法5.2 单源最短路径--Bellman-Ford算法5.3 多源最短路径--Floyd-W…

基于Java开发的五子棋游戏APP设计与实现

目录 一、项目概述 1 &#xff08;一&#xff09;安卓游戏发展趋势 1 &#xff08;二&#xff09;开发安卓游戏的意义 1 二、项目需求分析 2 &#xff08;一&#xff09;功能需求分析 2 &#xff08;二&#xff09;性能需求分析 2 &#xff08;三&#xff09;可行性分析 3 &…

【点云处理】点云法向量估计及其加速(1)

点云法向量是3D点云一个极其重要的几何表面特征&#xff0c;众多的点云处理算法都依赖精确的法向量估计&#xff0c;例如点云分割&#xff0c;点云去噪等。在自动驾驶领域&#xff0c;面对特殊场景我们主要依赖点云法向量进行场景分割。估计点云法向量需要得到该点的邻域内点&a…

nodejs+vue+elementui幼儿园管理系统python java php

本设计主要分为学生家长&#xff0c;管理员和教师三个角色&#xff0c;其中学生家长功能有注册登查看幼儿信息&#xff0c;查看缴费信息&#xff0c;申请请假&#xff0c;查看体检信息等&#xff1b;教师的功能有登陆系统&#xff0c;对自己的幼儿学生&#xff0c;班级&#xf…