所有 Tkinter 活动列表

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

在Python

tkinter
模块中,
<Button-1>
<Button-2>
<Button-3>
分别用于识别左键、中键和右键的鼠标按钮点击。

同样,

<KeyPress-Return>
用于按下返回键。

在哪里可以找到所有此类事件的列表,包括各个键盘按键的名称?

Tcl绑定手册没有这些。

python tkinter tcl
4个回答
126
投票

绑定和事件的一般列表可以在 effbot.org 或 New Mexico Tech 提供的 文档中找到,而除了 原始文档之外,还列出了 此处 的几个键的名称。

以下是最常见事件的摘要,并解释了一些按键名称:

活动 描述
<Button-1>

按钮 1 是最左边的按钮,按钮 2 是中间按钮(如果有),按钮 3 是最右边的按钮。

<Button-1>
<ButtonPress-1>
<1>
都是同义词。

对于鼠标滚轮Linux下支持,使用Button-4(向上滚动)和Button-5(向下滚动)

<B1-Motion>
按住鼠标按钮 1 移动鼠标(中键使用 B2,右键使用 B3)。
<ButtonRelease-1>
按钮 1 被释放。在大多数情况下,这可能是比 Button 事件更好的选择,因为如果用户意外按下按钮,他们可以将鼠标移离小部件以避免触发事件。
<Double-Button-1>
双击按钮 1。您可以使用 Double 或 Triple 作为前缀。
<Enter>
鼠标指针进入小部件(此事件并不意味着用户按下了 Enter 键!)。
<Leave>
鼠标指针离开小部件。
<FocusIn>
键盘焦点已移至此小部件或此小部件的子部件。
<FocusOut>
键盘焦点已从该小部件移至另一个小部件。
<Return>
用户按下了 Enter 键。对于普通的 102 键 PC 式键盘,特殊键为 Cancel(Break 键)、BackSpace、Tab、Return(Enter 键)、Shift_L(任意 Shift 键)、Control_L(任意 Control 键)、Alt_L(任意Alt 键)、暂停、Caps_Lock、Escape、上一页(向上翻页)、下一页(向下翻页)、结束、主页、向左、向上、向右、向下、打印、插入、删除、F1、F2、F3、F4、F5、 F6、F7、F8、F9、F10、F11、F12、Num_Lock 和 Scroll_Lock。
<Key>
用户按下任意键。键在传递给回调的事件对象的 char 成员中提供(这是特殊键的空字符串)。
a 用户输入了“a”。大多数可打印字符都可以按原样使用。例外情况是空格 (
<space>
) 和小于 (
<less>
)。请注意,1 是键盘绑定,而
<1>
是按钮绑定。
<Shift-Up>
用户按下向上箭头,同时按住 Shift 键。您可以使用 Alt、Shift 和 Control 等前缀。
<Configure>
小部件更改了大小(或位置,在某些平台上)。新的大小在传递给回调的事件对象的宽度和高度属性中提供。
<Activate>
小部件正在从非活动状态变为活动状态。这是指小部件状态选项的变化,例如按钮从非活动(灰显)变为活动。
<Deactivate>
小部件正在从活动状态变为非活动状态。这是指小部件状态选项的变化,例如单选按钮从活动变为非活动(灰显)。
<Destroy>
小部件正在被销毁。
<Expose>
只要应用程序或小部件的至少某些部分在被另一个窗口覆盖后变得可见,就会发生此事件。
<KeyRelease>
用户松开按键。
<Map>
小部件正在被映射,即在应用程序中变得可见。例如,当您调用小部件的 .grid() 方法时,就会发生这种情况。
<Motion>
用户将鼠标指针完全移动到小部件内。
<MouseWheel>
用户向上或向下移动鼠标滚轮。目前,此绑定适用于 Windows 和 MacOS,但不适用于 Linux。
<Unmap>
小部件正在取消映射并且不再可见。
<Visibility>
当应用程序窗口的至少一部分在屏幕上可见时发生。

6
投票

尝试查看模块源代码中

class EventType
的定义
tkinter/__init__.py

对于我来说,如果发生异常,此模块通常会在我的 Wing IDE 中显示为选项卡。



1
投票
Github 上有一个小 Tkinter-Help-Tool,您可以在其中分析任何事件,包括

event.keysym_num

event.state
 的数据作为位掩码!

<KeyRelease event state=Lock keysym=A keycode=38 x=177 y=29> KEYSYM_NUM: 65 | STATE MASK: 2 == 0x2 == 0b10
也许它可以帮助解决你的问题。

https://i.stack.imgur.com/mqc7B.png

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