view 类本身不保存任何数据,相反的它们可以显示model中数据。因此如果我们想要访问与一个view相关的所有items,我们必须首先获取该view的model,然后遍历model中的items。而且,在一个选择器model中,选择器独立于model。这是因为选择器事关视觉交互,不会影响底层数据。(当然用户可以选择然后改变所选内容,但是从数据model看来,这种改变简单的应用于一个或更多items,同时model不知道或不关心这些items是如何被选择的。)
Example 6.7 The tst_listView Test Script
def main():
startApplication("itemviews")
listViewName = "{type='QListView' unnamed='1' visible='1'}"
listView = waitForObject(listViewName)
model = listView.model()
selectionModel = listView.selectionModel()
for row in range(model.rowCount()):
index = model.index(row, 0)
text = model.data(index).toString()
checked = selected = ""
checkState = model.data(index, Qt.CheckStateRole).toInt()
if checkState == Qt.Checked:
checked = " +checked"
if selectionModel.isSelected(index):
selected = " +selected"
test.log("(%d) '%

本文档介绍了如何在QListView中测试Items,强调view并不存储数据,而是显示model中的数据。测试涉及获取view的model并遍历其items,同时说明选择器与model的独立性。示例代码展示了如何访问model数据,包括使用QModelIndex的row属性,以及通过QAbstractItemModel.data方法获取和检查item的checked状态。
最低0.47元/天 解锁文章
中的 Items&spm=1001.2101.3001.5002&articleId=49888921&d=1&t=3&u=cb14f54599dd414e91d444d803052596)
1179

被折叠的 条评论
为什么被折叠?



