关闭

Ⅰ.2.6.3.4 如何测试 QTableViews(QAbstractItemModels 和 QItemSelectionModels)中的 Items

205人阅读 评论(0) 收藏 举报
分类:

Table views,像其他的view 类一样,展示model中数据而不是自己保存数据。因此执行测试table展示的数据的关键是获取table view的model,对model的数据进行操作。下面举个例子展示如何操作,这个例子与list view的例子比较相似。

Example 6.10 The tst_tableview Test Script

def main():
    startApplication("itemviews")
    tableViewName ="{type='QTableView' unnamed='1' visible='1'}"
    tableView = waitForObject(tableViewName)
    model = tableView.model()
    selectionModel = tableView.selectionMode()
    for row in range(model.rowCount()):
        for column in range(model.columnCount()):
            index = model.index(row, column)
            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, %d) '%d'%s%s" % (row, column, text, checked, selected))
如果我们将上面的代码和等效的list view的代码做比较,很显然,唯一的区别是list models 只有一列(column 0),而table models有一个或多列。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38639次
    • 积分:1163
    • 等级:
    • 排名:千里之外
    • 原创:78篇
    • 转载:0篇
    • 译文:2篇
    • 评论:2条
    文章分类
    最新评论