Qt-关于QListView中layoutMode使用batched对setCurrentIndex的影响

引入

在某次使用QListView进行数据展示时,要求每次添加数据后选中最后一项,发现在插入数据过多后,会出现选中最后一项但滚动条固定到某个位置的情况。

最后发现是setLayoutMode方法中设置了batched属性,导致数据项更新后数据按批次排列,导致后续批次的项目无法与界面进行交互。

总结

layoutMode属性中:

  • singlePass: 所有项目都一次性布置;
  • batched: 在处理事件时,将这些项按batchSize项的批次进行布局。这使得在布置其余项目时可以立即查看可见项目并与之交互。

batched对于大规模项目的加载速度有显著提升,但特定需求下,需考虑与界面的交互问题。