如何完全迭代 QStandardItemModel?

2024-01-07

我有一个 QStandardItemModel,我将其显示在 QTreeView 中。工作正常。

为了突出显示相关行,我想突出显示其中的一些行:因此我有一个 QStringList,其中包含要突出显示的 QStandItem* 的名称。

QStringList namesToBeHighlighted = getNames();

QModelIndex in = myModel->index(0, 0);

if ( in.isValid() ) {

    for (int curIndex = 0; curIndex < myModel->rowCount(in); ++curIndex) {

        QModelIndex si = myModel->index(curIndex, 0, in);
        QStandardItem *curItem = myModel->itemFromIndex(si);

        if (curItem) {
           QString curItemName = curItem->text();

           if ( namesToBeHighlighted.contains(curItem->text()) ) {
               curItem->setFont(highlightFont);
           }
           else curItem->setFont(unHighlightFont);
        }
    }
}

我的模型具有以下结构:
Level_1
+--> 级别_11
+--> 级别_12
+--> Level_13
Level_2
+--> Level_21
+--> Level_22
+--> Level_23
...

在这里,它迭代第 11、12 和 13 层,然后停止。


我希望它对您有帮助:

void forEach(QAbstractItemModel* model, QModelIndex parent = QModelIndex()) {
    for(int r = 0; r < model->rowCount(parent); ++r) {
        QModelIndex index = model->index(r, 0, parent);
        QVariant name = model->data(index);
        qDebug() << name;
        // here is your applicable code
        if( model->hasChildren(index) ) {
            forEach(model, index);
        }
    }
}

QStandardItemModel model;
    QStandardItem* parentItem = model.invisibleRootItem();
    for (int i = 0; i < 4; ++i) {
        QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
        for (int j = 0; j < 5; ++j) {
            item->appendRow(new QStandardItem(QString("item %0%1").arg(i).arg(j)));
        }
        parentItem->appendRow(item);
        parentItem = item;
    }
forEach(&model);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何完全迭代 QStandardItemModel? 的相关文章

  • 在两个 .cpp 文件之间定义全局变量 [重复]

    这个问题在这里已经有答案了 如何在 A cpp 和 B cpp 之间共享 全球化 bool 变量 其中它们都不包含其他 h 文件 他们有其他联合头文件 但彼此没有 我可以在这些共享标头中定义全局变量吗 Thanks 我可以在这些共享标头中定
  • 何时对向量进行归一化?

    我正在学习 XNA 并且在几乎所有的教育套件中都可以找到http creators xna com en US http creators xna com en US 我总是看到向量上对 Normalize 的调用 我知道归一化基本上将向量
  • WPF - 按多列排序时使用自定义比较器

    我有一个 ListView GridView 我想按 2 列排序 因此如果第 1 列中有 2 个以上的项目具有相同的值 它将按第 2 列排序 非常简单 但是在对 A Z 进行排序时 空字符串会出现在顶部 我想把它们移到底部 我制作了一个比较
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • Windows 程序如何临时更改其时区?

    我写了一个函数来返回time t与给定日期的午夜相对应的值 当给定日期没有午夜时 它返回最早可用的时间 例如 当埃及进入夏令时时 这种情况就可能发生 今年 时间更改于 4 月 29 日晚上午夜生效 因此时钟直接从 23 59 转到 01 0
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • ASP MVC 5 - 403 customError 不起作用

    我正在尝试为我的应用程序创建自定义错误页面 它在大部分情况下都有效 但不适用于403 errors 我的网络配置
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 为什么在 .net 中使用 Invoke on Controls? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NET不允许跨线程操作 https stackoverflow com questions 2896504 why net does not allow cross thread operat
  • IBM Watson 对话服务错误:无法从“方法组”转换为“conversation.onMessage”

    我正在尝试运行 IBM Watson会话服务团结和下面是代码片段 https github com watson developer cloud unity sdk conversation private Conversation m C
  • 使用 cudamalloc()。为什么是双指针?

    我目前正在浏览有关的教程示例http code google com p stanford cs193g sp2010 http code google com p stanford cs193g sp2010 学习CUDA 演示的代码 g
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • 语义问题 Qt Creator:命名空间“std”中没有名为“cout”的成员

    我开始使用 Qt Creator 编写代码 对于 C 文件 我遇到很多语义问题 99 是 命名空间 yyy 中没有名为 xxx 的成员cpp文件构建 编译和输出没有问题 如果我点击例如cout 我已链接到 iostream 我是否需要在 Q
  • 如果数组为空,LINQ 返回 null

    public class Stuff public int x other stuff 我有一个IEnumerable
  • 如何在Linux上构建GLFW3项目?

    我已经使用 cmake 和 make 编译了 glfw3 和包含的示例 没有出现任何问题 开始编写我的第一个项目 作为 opengl 和 glfw 的新手 并且对 C 和 CMake 没有经验 我正在努力理解示例构建文件 甚至要链接哪些库和
  • 无效的模板相关成员函数模板推导 - 认为我正在尝试使用 std::set

    我有一个继承自基类模板的类模板 基类模板有一个数据成员和一个成员函数模板 我想从我的超类中调用它 我知道为了消除对成员函数模板的调用的歧义 我必须使用template关键字 我必须明确引用this在超级班里 this gt base mem
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • 在 R Markdown 文件中包含 HTML 文件吗?

    快速总结 如何放置 HTML 文件in place在 R Markdown 文件中 Details 我通过以下方式创建了一些漂亮的动画分区统计图脉络膜 https cran r project org web packages chorop
  • Fortran 语言中的 OpenMP

    我很少使用 Fortran 但是我的任务是将遗留代码重写为并行运行 我使用 gfortran 作为我的编译器选择 我在以下位置找到了一些优秀的资源https computing llnl gov tutorials openMP https
  • Sencha Touch 2.1 本机(android)应用程序无法从远程获取 json(它适用于 PC)

    我通过观看此视频创建了我的第一个 Sencha touch 2 应用程序 http youtu be 5F7Gx0 W M4 http youtu be 5F7Gx0 W M4 并且它的商店页面结构如下 Ext define FirstAp
  • 获取原始图像 url Magento (1.6.1.0)

    我有以下代码 cProduct Mage getModel catalog product foreach products id as product id product cProduct gt load product id prod
  • 如何在 Visual Studio 2010 中从自定义属性表设置 PlatformToolset

    我现在正从 VS 2005 迁移到 VS 2010 其产品由少数解决方案组成 每个解决方案包含大量项目 我想利用属性表系统 以便我们的众多配置更容易维护 问题之一是我们想要使用 Windows SDK 7 1 因为我们需要 BaseClas
  • d3.interpolateGnBu 发生了什么

    所以我尝试使用 GnBu 配色方案制作连续的色标 d3 scaleSequential d3 interpolateGnBu domain 0 1 这适用于 d3 scaleSequential d3 interpolateViridis
  • AEM 6.0 Sightly 子节点

    我有一个关于使用 Sightly 访问组件子节点的问题 我有一个模板 它使用 data sly resource 引入基本图像组件 如下所示 div class div 我想做的是根据该图像组件是否实际具有图像集来更改 css 类 为此 我
  • Maven - 如何包含空目录

    默认情况下 在构建过程中 maven 会删除空目录 你知道是否可以在pom中指定一个参数来指示maven在生成的target test classes文件夹中包含空目录 根据这张票 MRESOURCES 36 http jira codeh
  • “DbContextOptionsBuilder”不包含“UseSqlServer”的定义

    我正在尝试使用 C 在 VS 2015 Pro 更新 3 中创建一个 Web API 并针对 NET Core 我正在关注本教程 https docs efproject net en latest platforms aspnetcore
  • Wireshark/tshark 中的 2 通道过滤器

    选项 Y 2 and R in tshark迷惑我很久了 看完说明书我才知道 Y用于单通滤波器和 2在 2 遍过滤器中 如果我们在第 1 遍过滤器结束之前无法获取一些信息 但我还是不明白有什么区别 2 Y blabla and 2 R ba
  • 合并后发出拉取请求的用户不会出现在贡献者列表中

    我有一个回购协议Test GitHub 通知我该用户woo27 谁分叉了我的仓库Test 已经做了一个pull request 这些是官方推荐的合并命令 见下面的截图 git checkout b woo27 master master g
  • 如果 contentedittable = false,如何更改内容样式?

    嘿 我创建了一个可以打开新对话框 一个额外的 HTML 页面 的插件 通过此对话框 用户有机会创建自己的格式模式 我想要什么 我需要一个带有只读文本区域的tinymce编辑器 没问题 但用户必须能够选择粗体 斜体 下划线 字体大小 字体系列
  • JPA 实体和 Hibernate 实体之间的区别

    当我用 Entity 注释一个类并尝试解决依赖关系时 我可以在两个不同的包 javax persistence Entity 和 org hibernate annotations Entity 之间选择包 javax包是JPA的entit
  • 如何从 Vue.js 中深度嵌套的子组件访问数据

    我正在使用 Vue js 构建一个界面 我有一个表格 该表格包含一个地址和其他杂项数据 所以我在Vue中创建了两个组件 UserData and UserAddress UserData包含一个实例UserAddress作为子组件 我想根据
  • $(document).ready 的不同形式

    我见过有人写 document ready function 和一些写作 function 有什么区别以及何时使用什么 是 jQuery 对象本身 它在被调用时实现了一大堆不同的接口 string 运行选择器或构造节点 domElement
  • 单个 CSV 文件中的多个分隔符

    我有一个 CSV 它有三个不同的分隔符 即 和 不同列之间 我如何使用Python解析这个CSV 我的数据如下 2017 01 24 05 19 30 0000 TRANSACTIONDelim secondUSER LOGINDelim
  • 将 iAd 框架和 AdSupport 框架添加到构建阶段 - Xcode 6

    在 Xcode 6 中 如何将 iAd 框架和 AdSupport 框架添加到构建阶段 我转到 构建阶段 页面 但我唯一的选择是添加 新复制文件阶段 新运行脚本阶段 和 新标头阶段 我想要输入的框架属于哪些框架 如何输入这些框架 您应该单击
  • 如何在机器上找到 regasm 位置

    我正在创建一个使用 regasm 将 NET 程序集注册到 COM 的安装程序 不同的客户端将在其计算机上安装不同的 Microsoft Net 版本 我需要提前知道高潮位置才能使用它 我应该只在以下位置寻找它还是还有其他可能的位置 C W
  • Python Regex - 检查大写字母和小写字母

    我正在尝试检查紧随其后的小写字母的大写字母 诀窍在于 在它之前会出现一堆垃圾大写字母和数字 例如 AASKH317298DIUANFProgramming is fun 正如你所看到的 有很多我们不需要的东西直接出现在我们需要的短语之前 P
  • 如何完全迭代 QStandardItemModel?

    我有一个 QStandardItemModel 我将其显示在 QTreeView 中 工作正常 为了突出显示相关行 我想突出显示其中的一些行 因此我有一个 QStringList 其中包含要突出显示的 QStandItem 的名称 QStr