引入
在某次使用QListView
进行数据展示时,要求每次添加数据后选中最后一项,发现在插入数据过多后,会出现选中最后一项但滚动条固定到某个位置的情况。
最后发现是setLayoutMode
方法中设置了batched
属性,导致数据项更新后数据按批次排列,导致后续批次的项目无法与界面进行交互。
总结
layoutMode
属性中:
-
singlePass
: 所有项目都一次性布置; -
batched
: 在处理事件时,将这些项按batchSize项的批次进行布局。这使得在布置其余项目时可以立即查看可见项目并与之交互。
batched
对于大规模项目的加载速度有显著提升,但特定需求下,需考虑与界面的交互问题。