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

原创 2015年11月18日 15:58:01

如果我们想检查一个菜单项的属性,可以使用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)。


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

相关文章推荐

Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能

Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能 //mainwindo.h #ifndef MAINWINDOW_H #define MAINWI...
  • Jamence
  • Jamence
  • 2017年07月10日 19:39
  • 525

qt中的菜单QMenu QAction

Qt中要建立菜单,有三个类很重要: QMenuBar(QWidget * parent = 0) QMenu(QWidget * parent = 0) QMenu(const QString &...

100个有用的Qt 4 程序中鼠标与键盘操作技巧(更新中)

问1:Qt 的程序在ARM板上运行时,发现鼠标移动速度很慢,但在PC机上测试则一切正常,这是什么原因? 答1:这里面恐怕更多情况下应考虑程序效率问题,因为嵌入式平台的资源是比较有限的。 ...

Qt 4 访问 mysql 数据库的简单教程

环境:Windows XP          qt-sdk-win-opensource-2009.02.exe(Qt Creator 1.1.0)= Qt 4.5.1          mysql-...
  • zyx425
  • zyx425
  • 2011年05月26日 21:26
  • 1286

Qt 4开发环境的搭建

参加实习,需要用到Qt,最开始使用的是Qt 5.7,后来由于了解到Qt 4.x和Qt 5.x之间存在较大差异,而且在尝试项目移植的过程并不是十分顺利,索性重新编译安装Qt 4,在网上查看过很多各种各样...

《C++ GUI Qt 4 编程》 笔记(三)

博客搬家自 http://zhouyuanchao.com/wordpress/archives/69 第10章 项视图类 MVC 模型代表数据集,它对需要查看数据的获取以及任何存储的改变负...

QMenu和QAction创建及信号槽关联,实现子窗口调用

在开发过程中我们经常用到Qmenu来列出我们需要的菜单,类似Office菜单栏中的'开始、插入、页面布局、视图',用户可以根据自己的需要在菜单中添加对应的QAction,从而实现菜单列表的添加。...

为QMenu添加对QAction的tooltip的支持

QAction提供了setToolTip函数, 可以给action指定一个工具提示内容。 按照笔者的理解, 这样应该所有用到QAction的地方在鼠标停留时都应该显示出这个工具提示。 哪些地方会用到Q...

《C++ GUI Qt 4 编程》 笔记(二)

博客搬家自 http://zhouyuanchao.com/wordpress/archives/66 第二部分 Qt中级 第6章 布局管理 分组布局 QStackedLayout 对一组子...

零基础学Qt 4编程之中心窗口部件的使用总结

Qt程序中的主窗口通常具有一个中心窗口部件。从理论上来讲,任何继承自QWidget的类的派生类的实例,都可以作为中心窗口部件使用。 几种常见情形 QMainWindow的中心区...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ⅰ.2.6.5 如何测试QAction、QMenu、以及QMenuBar(Qt 4)
举报原因:
原因补充:

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