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

Ⅰ.2.6.5 如何测试QAction、QMenu、以及QMenuBar(Qt 4)

2015-11-18 15:58 429 查看
如果我们想检查一个菜单项的属性,可以使用Squish IDE插入验证点,或者手写代码。这里我们介绍如何写代码。

QMenus(QWidgets 也是如此)有一份QAction 对象列表。我们可以获取这个列表,使用QList API 遍历它的actions,对于每个action我们可以查询或者设置它的属性。首先我们看一个访问一个action的属性的例子,然后看一下该例依赖的自定义函数 getAction 的实现。

editMenu = waitForObject(":CSV Table - Unnamed.Edit_QMenu")
removeAction = getAction(editMenu, "&Remove Row")
test.verify(not removeAction.enabled)
test.verify(not removeAction.checked)
insertRowAction = getAction(editMenu, "&Insert Row")
test.verify(insertRowAction.enabled)
test.verify(not insertRowAction.checked)
这里我们获取一个应用程序的Edit 菜单的应用,检查remove row action是否可用以及是否可选,然后insert row action是否可用以及是否可选。(通常情况下是这样的,当使用 Tcl 时,我们选择使用test.compare 函数而不使用test.verify函数)。

def getAction(widget, text):
actions = widget.actions()
for i in range(actions.count()):
action = actions.at(i)
if action.text == text:
return action
这个小函数获取所给widget的actions列表,然后遍历该列表知道找到符合text的action。返回对应的action(或者没找到,返回null)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: