作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试模拟鼠标单击 QMenuBar 中的 QMenu 项,例如使用 QTestLib 框架单击“另存为”QAction。
我正在 Windows XP 32 位和 Qt 5.0.2 下尝试这个。
有什么想法吗?
最佳答案
这个问题可能与问题所有者无关,但我想它可能对其他人有帮助。
与 QToolBar
不同,QMenu
没有方法 widgetForAction
。我为这种情况找到了一个简单的解决方法。尝试使用 QTest::mouseClick
弹出菜单,如果没有任何反应,请尝试使用 QTest::keyClick(..., first_char_in_menu_tite, Qt::AltModifier)
。要模拟操作执行,您可以使用 Qt::Key_Down
导航到操作直到到达它,然后按 Qt::Key_Enter
。我想下面的代码可以帮助你理解
QMenu *menu = getMenu(mainWindow, menuName);
if (menu != nullptr) {
QTest::keyClick(mainWindow, menu->title().at(1).toLatin1(), Qt::AltModifier);
}
QList<QAction *> actions = menu->actions();
foreach (QAction *action, actions) {
if (action->objectName() == actionName) {
QTest::keyClick(menu, Qt::Key_Enter);
break;
}
QTest::qWait(1000);
QTest::keyClick(menu, Qt::Key_Down);
}
关于c++ - Qt UI 测试 : How to simulate a click on a QMenuBar item using QTest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536286/
我是一名优秀的程序员,十分优秀!