Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

在这个部分我们将看一看两个例子。第一个例子展示了如何设置table的rows 和 columns的数字;以及如何使用items填充table——包括使items变成可点击的和可选的;以及如何隐藏rows。第二个例子展示了如何遍历table中的每个item(跳过异常的rows),以及在Squish log中打印item的text和state信息。(这部分代码取自SQUISHROOT/examples/qt/csvtable 下的 tst_iterating测试套件。)

Example 6.8 Setting up a Table Widget

tableWidget = waitForObject("{type='QTableWidget' unnamed='1' visible='1'}")
tableWidget.setRowCount(4)
tableWidget.setColumnCount(3)
count = 0
for row in range(tableWidget.rowCoun):
    for column in range(tableWidget.columnCount):
        tableItem = QTableWidgetItem("Item %d" %count)
        count += 1
        if column == 2:
            tableitem.setCheckState(Qt.Unchecked)
            if row == 1 or row == 3:
                 tableItem.setCheckState(Qt.Checked)
        tableWidget.setItem(row.column, tableItem)
        if count in (6,10):
            tableItem.setSelected(True)
tableWidget.setRowHidden(2, True)
代码生成的table如下所示:


QTableWidgetItems

上例中的这个方法可以顺理成章地应用于设置table widget items的其他内容,如,它们的字体,背景颜色,文本对齐方式等等。
不管我们是否用上面的代码设置了一个table,还是使用一些其他的手段(如,使用AUT加载数据文件)来填充一个已经有数据的table,我们需要遍历table的items,检查它们的text和其他的属性。这就是下面的例子要做的事。
Example 6.9 Testing a Table Widget's Items
tableWidget = waitForObject("{type='QTableWidget' unnamed='1' visible='1'}")
for row in range(tableWidget.rowCount):
     if tableWidget.isRowHidden(row):
         test.log("Skipping hidden row %d" % row)
         continue
    for column in range(tableWidget.columnCount):
        tableItem = tableWidget.item(row, column)
        text = unicode(tableItem.text())
        checked = selected = ""
        if tableItem.checkState() == Qt.Checked:
            checked = " + checked"
        if tableItem.isSelected():
            selected = " +selected"
        test.log("(%d, %d) '%s'%s%s" %(row, column,text,checked, selected))
log输出如下:
The log output produced by the above is:
(0, 0) ’Item 0’
(0, 1) ’Item 1’
(0, 2) ’Item 2’
(1, 0) ’Item 3’
(1, 1) ’Item 4’
(1, 2) ’Item 5’ checked selected
Skipping hidden row 2
(3, 0) ’Item 9’ selected
(3, 1) ’Item 10’
(3, 2) ’Item 11’ checked
正如我们之前注意到的,同样的技术可以应用于测试其他的属性,如每个table item的字体、背景、文本对齐方式等等。
另一个测试一整个table的有用的方法是将items和.tsv(以tab间隔开数据的格式)、.csv(以逗号间隔开数据的格式)或.xls(微软Excel表格程序格式,而非.xlsx格式) 文件中的数据进行比较。示例将在2.6.4中展示。





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dzh0622/article/details/49889913
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭