首页 > 其他分享 >QStandardItemModel 遍历勾选的项

QStandardItemModel 遍历勾选的项

时间:2024-05-16 20:19:10浏览次数:20  
标签:info 遍历 parent rowCount QStandardItemModel 勾选 int model

QStandardItemModel 遍历勾选的项

rowCount()不能传入 m_model->index(0, 0)根节点,无法获取行数;

不传,或者传入一个空QModelIndex对象,可以获取到第一级节点的数量;

QMap<QString,QVariantMap> mapSelectVideo;
    int rootRowCount = m_model->rowCount();
    for (int i= 0;i<rootRowCount;i++)
    {
        QModelIndex rootIndex = m_model->index(i, 0);
        RecursiveFindCheckedVideo(rootIndex, mapSelectVideo);
    }

 

void SelectVideoTree::RecursiveFindCheckedVideo(QModelIndex& parent, QMap<QString, QVariantMap>& mapSelectFile)
{
    if (parent.isValid())
    {
        int rowCount = m_model->rowCount(parent);
        for (int i = 0; i < rowCount; ++i)
        {
            QModelIndex childIndex = m_model->index(i, 0, parent);
            QStandardItem* pItem = m_model->itemFromIndex(childIndex);
            if (pItem)
            {
                QVariantMap info = pItem->data().toMap();
                if (info.value("type") == "2")//视频文件
                {
                    mapSelectFile.insert(info.value("location").toString(), info);
                }
                else
                {
                    RecursiveFindCheckedVideo(childIndex, mapSelectFile); // 递归遍历子项
                }
            }

        }
    }
}

标签:info,遍历,parent,rowCount,QStandardItemModel,勾选,int,model
From: https://www.cnblogs.com/bclshuai/p/18196665

相关文章

  • 数据结构学习笔记-先序遍历森林
    先序遍历森林问题描述:设计算法输出先序遍历的森林节点及其所在的层次【算法设计思想】1.数据结构定义首先,定义二叉树节点的数据结构。每个节点包含存储数据的data字段,以及指向左右子节点的指针(lChild和rChild)。这种数据结构是二叉树和森林表示的基础。2.先序遍历单棵树设......
  • Object.values()对象遍历
    Object.keys() 对象的遍历 返回给定对象所有可枚举属性的数组;是属性名组成的数组letobj={a:1,b:2,c:3};Object.keys(obj).map((key)=>{console.log(key,obj[key]);}); Object.values() 对象的遍历返回一个给定对象自身的所有属性值的......
  • 目录遍历(Pikachu)
    原理Web安全-目录遍历漏洞_百度搜索文件遍历漏洞-CSDN博客防御1.对用户的输入进行验证,特别是路径替代字符如“../”和“~/”。2.尽可能采用白名单的形式,验证所有的输入。3.合理配置Web服务器的目录权限。4.当程序出错时,不要显示内部相关配置细节。5.对用户传过来的文件名......
  • js 遍历数组取出字符串用逗号拼接
    var arr=[{"name":"hhh"},{"name":"dddd"}] //用jsfunction getTextByJs(){    var str= "";    for (var i=0;i<arr.length;i++){        str+=arr[i].name+ ",";    }    //去掉最后一个逗号(如......
  • 问文心一言——C# 遍历datagridview单元格 不用嵌套循环
    问:C#遍历datagridview单元格不用嵌套循环答:在C#中遍历DataGridView的单元格通常意味着你需要遍历行(Rows)并在每行中遍历单元格(Cells)。然而,如果你想要避免嵌套循环的“感觉”,你可以使用LINQ(LanguageIntegratedQuery)或者一个简单的foreach循环配合委托或Lambda表达式来“扁平化......
  • P3916 图的遍历
    题面:链接:https://www.luogu.com.cn/problem/P3916思路:反向遍历图啊卡了好久,如果正序来的话还得考虑环和先后次序的问题代码:#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>......
  • NodeJS路径遍历:示例及预防
    让我们来看看什么是路径遍历攻击,以及在Node.js中可以采用哪些方法来阻止这种攻击。构建一个安全而健壮的应用程序需要考虑的因素很多,并非一件容易的事情。要确保覆盖所有潜在的漏洞是一项十分艰巨的任务,这需要大量的经验和指导。在这些漏洞中,有一个和系统目录访问安全相......
  • 关于单向不循环链表的创建、插入、删除、遍历、检索
    关于单向不循环链表的创建、插入、删除、遍历、检索单向不循环链表公式初始化单向不循环链表构建单向不循环链表结构体//创建结构体类型typedefstructone_way_node{//数据域chardata[DATA_LEN];//指针域structone_way_node*next;}ONE_WAY_NOD......
  • 如何根据二叉树遍历结果快速绘制二叉树
    一、已知前序遍历和中序遍历(1)前序遍历(根结点--->左子树--->右子树)ABDGHCEIF(2)中序遍历(左子树--->根结点--->右子树)GDHBAEICF注意:在最后连接二叉树时,注意先完玩左子树,再连右子树二、已知前后序遍历和中序遍历(1)后序遍历(左子树--->右......
  • 已知前中后序遍历的其中两种推断出最后一种序遍历
    已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是?方法1:首先可以确定c为根d为最左子树由中序debac假设b为第2排的子树那么后序的后两位应该是bcyu本题题目后序不符合由中序debac假设e为第2排的字数那么后序的后两位应该是ec符合本题题目后序由后......