Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

来源:互联网 发布:苹果4s越狱软件 编辑:程序博客网 时间:2024/06/07 02:42

在这个部分我们将看一看两个例子。第一个例子展示了如何设置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 = 0for 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 selectedSkipping 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中展示。





0 0
原创粉丝点击