gpt4 book ai didi

qt - 死键不会到达 keyPressedEvent()

转载 作者:行者123 更新时间:2023-12-04 17:07:09 25 4
gpt4 key购买 nike

我正在为一个程序使用 Qt 4.3.1(我现在无法升级),无论如何在 Windows 中死键(^、´、`、...)不会到达 keyPressedEvent (),我总是要按两次。

那么为什么那些死 key 还没有到达呢?我该如何解决?

不过在 MacOS 中一切正常。

谢谢,eL。

最佳答案

查看 Qt 文档后,我不确定 keyPressEvent 是否应该传送死键。我真的有点惊讶你在 Mac 上看到它们。

我猜 Qt 在为您的小部件发送 keyPressEvent 之前选择等待 WM_CHAR 事件或其他事件。从这个页面可以看到:http://msdn.microsoft.com/en-us/library/ms646267(VS.85).aspx#_win32_Dead_Character_Messages当用户按下一个死键然后再按下一个实键时,按键事件的顺序是:

WM_KEYDOWN
WM_DEADCHAR
WM_KEYUP
WM_KEYDOWN
WM_CHAR
WM_KEYUP

如果您真的想捕获死字符按键,请查看子类化 QApplication 并覆盖 winEventFilter ( http://doc.qt.io/qt-4.8/qcoreapplication.html#winEventFilter) 方法。这将使您能够在 WM_DEADCHAR 事件进入时捕获它们。然后您可以创建一个 KeyEvent 并将其分派(dispatch)给当前具有焦点的小部件。

关于qt - 死键不会到达 keyPressedEvent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com