gpt4 book ai didi

Python 文档和/或缺乏(例如键盘 event.state)

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:58 25 4
gpt4 key购买 nike

我在基于 tkinter 的程序中有一个函数可以处理所有按键。我想在一个函数中处理所有按键。

我能找到的测试是否按下任何修饰符( ShiftAltCtrl )的唯一方法是测试事件对象的 state 。属性。但是,我无法找到任何描述此属性的用法以及不同值可能意味着什么的文档。 The closest match I got描述性不太好。

通过进行一些测试,我得出了下表。 (首先单独按下 g 键,然后按下( ShiftAltCtrl )的各种组合。)

## keysym  Shift   Alt     Ctrl    event.state   state as binary (LSB is on the right)
## g 8 ....... ........ ........ ....1...
## G [] 9 ....... ........ ........ ....1..1
## g [] 131080 ....... ......1. ........ ....1...
## g [] 12 ....... ........ ........ ....11..
## G [] [] 131081 ....... ......1. ........ ....1..1
## g [] [] 131084 ....... ......1. ........ ....11..
## G [] [] 13 ....... ........ ........ ....11.1
## G [] [] [] 131085 ....... ......1. ........ ....11.1

这是否记录在任何地方,或者我们是否应该推断出此类信息?我只是想了解一下 Python 文档的工作原理,这与 Visual Studio/MSDN 有很大不同。

为什么是Alt修饰符给出了如此奇怪的标志?

更新:这是 event.state 的更完整列表口罩,通过测试得出。

平台:Windows 7、64 位、Python 3.4.3、USB 键盘和 USB 鼠标。

Mask    | Modifier            
--------+---------------------
0x0001 | Shift_L, Shift_R
0x0002 | Caps_Lock
0x0004 | Control_L, Control_R
0x0008 | Num_Lock
0x0100 | Mouse Button 1
0x0200 | Mouse Button 2
0x0400 | Mouse Button 3
0x20000 | Alt_L, Alt_R

最佳答案

tkinter 是 Tk 的包装器。如果您对 Tk 有疑问,我知道的最佳来源是 https://www.tcl.tk/doc/

如果你看http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/event-handlers.html我想你会明白如何做你想做的事。至于记录在哪里,我相信这篇文章的作者 John Shipman 通过使用一些自动化文档工具从 tkinter 源代码中获取了很多信息。他在电子邮件中告诉我他是如何做到的,但那是很多年前的事了,我已经忘记了细节。

在我的 Mac(使用 Logitech Windows 键盘)上,我得到的左右 Alt 掩码均为 0x10,但 Shift 和 Ctrl 的值匹配。所以它似乎在某种程度上确实依赖于平台。当我按箭头键、功能键或数字键盘键时,我也会得到非零掩码。

关于Python 文档和/或缺乏(例如键盘 event.state),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32426250/

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