wx.KeyEvent 和非 QWERTY 键盘
wx.KeyEvent and non-QWERTY keyboards
我正在使用 wxPython,wxWidgets 的 Python 桥梁,所以我想 wxWidgets 用户可以回复。我正在玩 KeyEvent
class 并且由于我正在其他平台和其他键盘上测试我的代码,我有一个令人难以置信的(对我来说)发现:其他键盘布局似乎得到很好的支持。
这就是我的意思:如果您 运行 演示(在我的例子中是 KeyEvents.py
)并使用 QWERTY 键盘按随机字母,一切正常。切换到另一个布局,事情仍然有效......有点。现在我有一个主要在法国使用的 AZERTY 键盘,所以当我按下 a 键(在 q 的英文位置)时,会报告 'a'。到目前为止,一切都很好。但是,如果我按 é(位于英语 2 键上的键),则会报告 2。阅读文档并不能完全帮助我弄清楚发生了什么。自从 wx 出来后,这是一种没有人注意到的错误吗?我猜也希望不会,但我猜迟到总比不到好。
更技术性地说,KeyDown
和 KeyUp
事件有这个问题。我有一个 AZERTY kleyboard,我按下 2 键,然后报告 2,而 é 写在屏幕上。诚然,Char
事件确实报告了一个 é,但是,如果我理解正确的话,Char
事件在任何情况下都不会触发,而 KeyDown
事件会被触发。也许我在这里遗漏了一些东西,也许这就是我和国际用户的解决方案。
提前感谢您的回复,
Char event is not triggered in any context a KeyDown event is
triggered.
错误。
由于每个国家都有自己的键盘布局,当一个键被按下时wxWidgets发送两个事件:一个(键事件)是该键的硬件代码;另一个(字符事件)是 "translated" 代码,通常是 Unicode 点,但如果禁用了 Unicode 支持,则为 ASCII 代码。
如果您只想对 key-down 或 key-up 事件执行某些操作,Keyevent 很有用。如果使用字符,则仅使用字符事件。
我正在使用 wxPython,wxWidgets 的 Python 桥梁,所以我想 wxWidgets 用户可以回复。我正在玩 KeyEvent
class 并且由于我正在其他平台和其他键盘上测试我的代码,我有一个令人难以置信的(对我来说)发现:其他键盘布局似乎得到很好的支持。
这就是我的意思:如果您 运行 演示(在我的例子中是 KeyEvents.py
)并使用 QWERTY 键盘按随机字母,一切正常。切换到另一个布局,事情仍然有效......有点。现在我有一个主要在法国使用的 AZERTY 键盘,所以当我按下 a 键(在 q 的英文位置)时,会报告 'a'。到目前为止,一切都很好。但是,如果我按 é(位于英语 2 键上的键),则会报告 2。阅读文档并不能完全帮助我弄清楚发生了什么。自从 wx 出来后,这是一种没有人注意到的错误吗?我猜也希望不会,但我猜迟到总比不到好。
更技术性地说,KeyDown
和 KeyUp
事件有这个问题。我有一个 AZERTY kleyboard,我按下 2 键,然后报告 2,而 é 写在屏幕上。诚然,Char
事件确实报告了一个 é,但是,如果我理解正确的话,Char
事件在任何情况下都不会触发,而 KeyDown
事件会被触发。也许我在这里遗漏了一些东西,也许这就是我和国际用户的解决方案。
提前感谢您的回复,
Char event is not triggered in any context a KeyDown event is triggered.
错误。
由于每个国家都有自己的键盘布局,当一个键被按下时wxWidgets发送两个事件:一个(键事件)是该键的硬件代码;另一个(字符事件)是 "translated" 代码,通常是 Unicode 点,但如果禁用了 Unicode 支持,则为 ASCII 代码。
如果您只想对 key-down 或 key-up 事件执行某些操作,Keyevent 很有用。如果使用字符,则仅使用字符事件。