Ⅰ.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中展示。





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

Extjs 在中获取window中items 的值,避免使用id

var forceInWin2 = new Ext.Window({ id : 'creatInWin2', title: "验证", widt...
  • zpryan
  • zpryan
  • 2015年02月05日 11:26
  • 1418

4.zabbix学习笔记:zabbix深入配置和使用 之 Items

zabbix深入配置和使用Items的含义和使用item是什么?它是我们对于host监控的基本条目,它属于不同的applications中,item的设置既可以针对具体的某个host主机,也可以针对模...
  • linux_player_c
  • linux_player_c
  • 2015年12月26日 17:08
  • 2087

解决eclipse在线安装不了genymotion

今天在网上看见网友说genymotion安卓模拟器是多麽的流畅,比起google自带的那些emulator快十倍,经本人亲身体会确实特别流畅,开机速度快,界面也相对漂亮,操作起来也流畅。但是按照网上说...
  • sp1336542268
  • sp1336542268
  • 2015年08月02日 18:24
  • 1053

【Scrapy】Items容器

ItemsItem对象是种简单的容器,保存了爬取到的数据。其提供了类似于字典的API以及用于声明可用字段的简单语法。声明ItemItem使用简单的class定义语法以及Field对象来声明。impor...
  • Area_52
  • Area_52
  • 2015年05月27日 12:26
  • 969

c#的自定义控件中的属性像Items一样打开一个form的做法

今日需要弄UI和对象绑定,找到了魏琼东这位牛人的博客,在里面吸取了经验,自己做一个简单版的就好了,但问题就来了,不知道怎么实现以下标记的效果。 联想到combobox中的items也是这样的表现,...
  • tvvbbb
  • tvvbbb
  • 2016年01月05日 11:41
  • 1690

PHP中的->,=>,::,$this->解析

php 代码中的箭头“ ->”是什么意思?“::”两个冒号是什么意思,“=>”是什么意思 类是一个复杂数据类型,这个类型的数据主要有属性、方法两种东西。 属性其实是一些变量,可以存放数...
  • a1232345
  • a1232345
  • 2014年08月20日 15:41
  • 778

Android学习中遇到的问题及解决方案

1.搭建开发环境时遇到的问题:初装Android Studio,首次运行报错:Error running app: Instant Run requires ‘Tools | Android | En...
  • github_36248956
  • github_36248956
  • 2016年10月10日 22:34
  • 704

RESTful API 设计最佳实践

 摘要:目前互联网上充斥着大量的关于RESTful API(为了方便,以后API和RESTful API 一个意思)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?AP...
  • xingdavis
  • xingdavis
  • 2014年11月12日 11:26
  • 373

Aptana的安装与配置

1. Aptana插件的安装 Aptana可通过Aptana官方的下载最新版本3.4.2按提示安装即可。 Aptana3离线安装包  Q: 是否有Aptana3的离线安装包(就...
  • u014484715
  • u014484715
  • 2015年01月08日 16:09
  • 905

memcache源码分析之items

items是memcache用来管理item的封装,采用的hash表和LRU链的形式,关于hash表的操作见我前几天的文章  memcache源码分析之assoc     关于item内容的存储机...
  • lanyangyang310
  • lanyangyang310
  • 2014年10月11日 10:32
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ⅰ.2.6.3.3 如何测试 QTableWidgets 中的 Items
举报原因:
原因补充:

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