如何将 QTest::keyClick 与控制字符一起使用?

问题描述 投票:0回答:1

我正在尝试模拟用户输入来关闭窗口。我尝试使用 QTest::keyClick(Qt::key::Key_F4, myWidget, Qt::KeyboardModifiers{ Qt::KeyboardModifier::AltModifier });模拟用户单击 Alt+F4 键盘组合,但不起作用。我单步执行代码,发现 keyClick 和类似函数仅支持 ASCII 字符。有没有办法模拟作为控制字符的按键点击?

有关我的用例的更多详细信息,我想在有人关闭窗口时弹出一个消息框。我有一个事件过滤器可以处理这个问题。我有代码来检查消息框是否已创建,但测试用例失败,因为事件过滤器无法确定事件。我认为这与我传递给 keyClick 的内容有关,但我不确定。

user-interface keyboard-events qt6 qttest
1个回答
0
投票

我正在测试我的代码最终不支持的行为。我的 eventFilter() 方法检查 KeyPress、KeyRelease 和 Close 类型的事件。 QTest::keyClick() 不会触发其中任何一个。我解决这个问题的方法是调用 QTest::keyPress() 来模拟按下 Alt 键,然后调用 QWidget::close() 来模拟关闭小部件。代码中的这一更改使我的测试通过了。

© www.soinside.com 2019 - 2024. All rights reserved.