Ⅰ.2.6.7 如何测试QListView (Qt 3)
来源:互联网 发布:尼康镜头大三元知乎 编辑:程序博客网 时间:2024/05/18 01:38
这个部分介绍了如何验证一个Qt 3 list view widget(事实上是个tree widget)包含了我们所期望的items。
一种方法是遍历list view中的所有items,检查它们的每个text。例如,如果我们有一个 list view,该list view应该有一个最高层的名字为“Apple”的item,它有两个子item,text分别为“Orange”和“Banana”,我们可以使用下面的代码进行验证:
listview = waitForObject(":fruit_QListView") item = listview.firstChild() test.compare(item.text(0), "Apple") child = item.firstChild() test.compare(child.text(0), "Orange") sibling = item.nextSibling() test.compare(sibling.text(0), "Banana")我们也可能想验证list view真的只包含一个最高层的item。可以通过尝试获取第一个item的兄妹成员来得到——返回空的话就是没有兄妹item——使用的是QListViewItem::nextSibling方法。示例:
var item = item.nextSibling(); test.verify(isNull(item));我们通过QListViewItem::firstChild 和 QListViewItem::nextSibling 函数可以遍历Qt 3 list view的所有items(即tree中的所有items)。我们可以使用QListViewItem::text 函数验证任何一个item的text,将待检验的column的数字传给该函数(因为每个item有可能不止一个column)。
另一种获取item的方法是使用QListView::findItem 函数。当我们想从tree中一个特别的位置搜索而不是从头开始搜索,或者如果我们只想在一列中搜索,对于验证某个item是否出现了这个函数很有用。例如,要想知道是否有一个text是“Orange” 的item,它可能存在于任何一个item的第一列,代码如下:
#TCL set item[invoke $listview findItem "Orange" 0] test compare [isNull $item] false给出的QListView::findItem 函数的第二个参数指定了搜索哪一列。
一个list view也可以包含更多的复杂的item,例如QCheckListItem.如果“Orange” item是一个check list item,我们想验证它被checked了,写出的代码如下:
item = listview.findItem("Orange", 0) checkItem = cast(item, QCheckListItem) if checkItem: test.compare(checkItem.state(), QCheckListItem.On) else: test.fail("the retrieved item is not a QCheckListItem")QListView::findItem 函数返回一个QListViewItem 的引用,因此我们比较将这个item转成它实际的类型(即,转成QLsitViewItem的子类型),在这种情况下使用cast 函数输入QCheckListItem。如果转换成功返回一个请求类型的一个对象的引用;如果失败返回0(脚本语言中,在条件语句中是false)。如果转换成功,我们调用item 的 QCheckListItem::state 函数,看是否返回QCheckListItem::On ;如果返回了,那么该item被checked了并且验证通过。转换不成功,我们使用test.fail 函数强制测试失败。
0 0
- Ⅰ.2.6.7 如何测试QListView (Qt 3)
- Qt QListView
- Ⅰ.2.6.8 如何测试QTable (Qt 3)
- Qt QListView用法
- Qt之QListView
- QT 之 QListView类
- Qt之QListView
- Qt浅谈之自动补全(QCompleter或QListView)
- Qt自动补全(QCompleter或QListView)
- QT:自动补全(QCompleter或QListView)
- Ⅰ.2.6 如何测试Qt Widgets
- Qt 中用QListView显示缩略图
- QT 选中QListView 指定行
- QT之qss教程-QListView
- Ⅰ.2.6.3 如何测试Item Views、Item Widgets 和 Models 中的Items (Qt 4)
- QListView
- QListView
- QListView
- 图论——Dijkstra+prim算法涉及到的优先队列(二叉堆)
- apache commons StringUtils介绍 (转)
- 重新认识MIME类型
- angular $watch
- Android UI最佳实践
- Ⅰ.2.6.7 如何测试QListView (Qt 3)
- Java中的集合
- 爬虫搜索基础篇(一)
- get请求和post请求demo
- 滑动菜单(实例)
- SVN切换IP,不换路径,快捷方法
- coredata基本用法(一)
- 乘法表问题
- linux-常用命令