来自QTreeView的可见项目列表

博士

获取由QTreeView显示的当前可见项目列表的最佳方法是什么?并且当更改时是否可以获得通知?

我模型的数据可以在应用程序中异步更改(数据来自硬件寄存器)。刷新数据可能会很慢,因此我想定期在专用线程中刷新。我不想刷新所有项目,因为它效率很低,只是可见的项目。

我知道这一点,但就我而言,数据是异步更改的,因此仅当调用setData()时,我才能刷新这些项。

约瑟夫·爱尔兰

忽略视图并专注于模型可能会更容易。

您可以在简单的预刷新缓存上对其进行建模:.data()返回最后一个已知值,但也计划进行更新。由于视图将调用model.data(index)

  • 当索引出现时,
  • 每次变化(带有dataChanged()信号),而索引可见

这可以形成循环以轮询可见项目。当单元格不可见时,视图将停止调用.data(),从而终止循环。您还应该考虑data()可以在此循环之外调用的内容,因此不会中断。

可能的顺序

使用者介面

  1. 细胞进入视野
  2. 查看通话model.data(cell, Qt::DisplayRole)
    • 将单元格添加到计划的索引集(如果尚未计划)
    • 返回旧的或默认数据
  3. 数据异步更新,发出 dataChanged()
  4. 任一单元格都在视图中,该视图将model.data()再次调用-循环回到步骤2,否则该单元格不可见,序列在此处结束。

数据线程

  1. 每X ms更新一次所有计划的索引(清除集合)。

这将满足您连续/异步轮询可见模型项的要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ListView不刷新已经可见的项目

来自分类Dev

使来自JPanel的图形在JPanel外部可见

来自分类Dev

如何获取QTreeView中的最后一个可见项目

来自分类Dev

Caroufredsel响应式可见项目

来自分类Dev

当我更改线性布局的可见性并添加到列表中所有过去的项目时,可见性将被更改

来自分类Dev

PyQt4:如何获取QlistWidget可见项目的列表?

来自分类Dev

AngularJS-当前可见的“全选”项目

来自分类Dev

滚动QListView以在列表开头插入时保持项目处于可见状态

来自分类Dev

找出QTreeView中可以容纳多少个项目(屏幕上可见的行数)

来自分类Dev

GridView中的项目不可见

来自分类Dev

可见性范围项目/模块

来自分类Dev

QToolBox:如何使多个项目同时可见

来自分类Dev

RecyclerView可见项目数

来自分类Dev

RecyclerView项目内容不可见

来自分类Dev

RecyclerView列表不可见

来自分类Dev

设置最初可见的项目LazyGrid(swiftUI)

来自分类Dev

可见项目不在屏幕上

来自分类Dev

WPF在列表框中设置项目的可见性-背后的代码

来自分类Dev

使来自JPanel的图形在JPanel外部可见

来自分类Dev

我的表单似乎对项目不可见

来自分类Dev

滚动QListView以在列表开头插入时保持项目处于可见状态

来自分类Dev

GridView中的项目不可见

来自分类Dev

Android不可见的ListView项目

来自分类Dev

ListView的可见项目

来自分类Dev

角度列表找到可见

来自分类Dev

为什么溢出-y:隐藏HTML列表会使项目符号/数字不可见?

来自分类Dev

如何使动态添加的可见的故事板项目可见?

来自分类Dev

从 Angular6 模板中的选择下拉列表中选择项目时使部分可见

来自分类Dev

Recyclerview 项目不可见/键盘可见时丢失

Related 相关文章

热门标签

归档