您的位置:首页 > 编程语言 > Qt开发

Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

2015-11-17 16:56 495 查看
在这个部分我们将看一看两个例子。第一个例子展示了如何设置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中展示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: