Tkinter 中的绑定和事件

读者大家好,在本文中,我们尝试了解 Tkinter 中的事件。在开始本主题之前,我们必须记住Python的Tkinter包用于设计基于GUI的界面。Tkinter 具有各种内置功能和扩展,可用于增强应用程序的功能和性能。

什么是事件?

事件这个词的基本定义是特定事物的发生,或者可以定义为在 Tkinter 中类似地发生或发生的事物,事件是用户执行的操作,例如鼠标移动或按键。事件用于将用户执行的操作连接到应用程序可理解的逻辑,从而导致其图形变化。

当我们在 Tkinter 中使用小部件时,它们确实有很多内置行为。例如,按钮将执行其命令回调以响应鼠标单击。但是,您可以使用 Tkinter 的事件绑定功能添加、修改或删除操作/行为。

此绑定功能是通过使用.bind()函数来实现的,事件以及事件处理程序在小部件中定义

widget.bind(event, event handler)
  • 事件– 由用户引起的可能反映更改的事件。
  • 事件处理程序– 应用程序中的函数,在事件发生时调用。
  • 绑定– 配置一个事件处理程序(Python 函数),当小部件发生事件时调用该事件处理程序。

例如:

例子

输出

首先作为输出,将出现一个对话框,上面显示一个按钮,一旦用户在显示的按钮上单击鼠标左键,就会调用事件处理程序(此处名为的函数充当事件处理程序)并显示askPython文本输出窗口中将出现消息“您已成功学习 Tkinter”。

输出

事件的语法。

事件序列通常是包含一个或多个事件模式的字符串。每个事件模式描述了一个可能的结果。如果序列有许多事件模式,则只有在该序列中出现每个模式后才会调用处理程序。<....>请记住,事件序列始终在“ ”之间描述

Syntax:
<modifier - type - detail>

修饰符和细节部分是可选的。类型是定义事件的关键部分。

  • 修饰符 – 用于指定组合的部分,例如在使用鼠标或单击其他键时按住 Shift 或 Control 按钮。
  • type – 定义特定类型的事件,例如鼠标单击或按键。
  • 详细信息 – 描述您要查找的鼠标按钮或按键时使用的元素。1 代表鼠标上的按钮 1,2 代表按钮 2,3 代表鼠标上的按钮 3。

事件类型

<button>

用户单击了其中一个鼠标按钮。在详细信息部分中指定哪个按钮示例:<button-1> 是最左边的按钮,<button-2> 是中间按钮(如果有),<button-3> 最右边的按钮,<button-4> 用于滚动向上滚动,<button-5> 向下滚动。

<buttonRelease>

鼠标按钮被用户释放。由于用户可能将鼠标移离小部件以防止误按按钮,因此在大多数情况下这无疑是比 Button 事件更好的选择。

<Configure>

用户修改了小部件的大小,例如通过扩展窗口的角或边。

<Destroy>

一个小部件正在被销毁。

<Enter>

用户将鼠标指针放在小部件的可见区域上。(这与回车键不同,回车键是某个键的 KeyPress 事件)

<Expose>

每当您的小部件或应用程序的至少一部分在被另一个窗口隐藏后变得可见时,就会发生这种情况。

<FocusIn>

这可能是响应用户交互(例如使用 Tab 键在小部件之间切换)或以编程方式(例如,当您的软件在小部件上调用 .focus set() 方法时)发生的。

<FocusOut>

作为输入焦点的小部件已更改。与 <FocusIn> 类似,用户或您的软件都可以启动此事件。

<KeyPress>

用户按下键盘按键。该键在事件部分的详细信息部分中指定。“key”一词可以用作缩写。

<KeyRelease>

用户释放了密钥。

<Leave>

用户将鼠标指针移出小部件。

<Map>

应用程序正在映射或使小部件可见。例如,如果您使用小部件的.grid() 方法,就会发生这种情况。

<Motion>

当按下鼠标按钮时,鼠标就会移动。使用<B1-Motion>、<B2-Motion> 或<B3-Motion> 分别选择鼠标左键、中键或右键。

<MouseWheel>

用户向上或向下移动鼠标滚轮。 

<Unmap>

未映射的小部件是那些不再可见的小部件。例如,当您使用 widgets.grid remove() 方法时,就会发生这种情况。

<Visibility>

当应用程序窗口的至少一部分在屏幕上可见时,就会发生这种情况。

概括

我们已经详细讨论了 Tkinter 中的主题事件,并了解使用事件的主要目的是理解用户执行的操作(可以通过鼠标移动或按键)并通过行为变化来响应这些操作图形用户界面的。