关闭

Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items

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

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





0
0

猜你在找
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【套餐】深度学习入门视频课程——唐宇迪
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】计算机视觉原理及实战——屈教授
【直播】机器学习之凸优化——马博士
【直播】机器学习&数据挖掘7周实训--韦玮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38481次
    • 积分:1161
    • 等级:
    • 排名:千里之外
    • 原创:78篇
    • 转载:0篇
    • 译文:2篇
    • 评论:2条
    文章分类
    最新评论