Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

原创 2015年11月17日 16:56:51

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





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

第Ⅰ部分 敏捷开发 第4章 测试

烈火验真金,逆境磨意志——卢修斯?塞尼加 编写单元测试是一种验证行为,更是设计行为,更是编写文档行为。避免了反馈循环。 ★4.1测试驱动的开发方法 设计程序先编写测试方案,单元测试是检验程序功能...

c++primer sales-items头文件

mtl_system_items_b表中的栏位与界面栏位对应

Introduction The basic table mtl_system_items_b is the basic table of item in ERP system and there ...

谷歌眼镜Mirror API之Menu Items

本文转自:http://bbs.seacat.cn/thread-874-1-2.html Menu Items(菜单项)    传播内容是只有一半的故事。最有趣的服务还允许用户通过菜单项...

OAF中的regions和items类型

  • 2014-10-17 18:15
  • 16KB
  • 下载

zabbix数据库items根据vlaue_type选择性存放history相关表

今天zabbix监控数据进行分析处理,由于太了解zabbix的数据是怎么存放的领导们又出去了,只能自己分析处理下。 涉及到的表有 items、history、history_str、hi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)