- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个程序使用 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/
我正在为一个程序使用 Qt 4.3.1(我现在无法升级),无论如何在 Windows 中死键(^、´、`、...)不会到达 keyPressedEvent (),我总是要按两次。 那么为什么那些死 k
我尝试使用 NetBeans 在我的 Java.Swing 应用程序中创建一个 JTextArea,以便当我按下 Enter 按钮时。 JTextArea 将显示“BUTTON PRESSED”。 这
我是一名优秀的程序员,十分优秀!