Python Tkinter 中的绑定方法2025年3月17日 | 阅读 14 分钟 在以下教程中,我们将讨论 Python 编程语言中 Tkinter 使用的绑定概念。但在开始此主题之前,我们必须记住 Python 的 Tkinter 包用于设计基于图形用户界面 (GUI) 的接口。Tkinter 拥有广泛的内置功能和扩展,可用于提高应用程序的整体性能和功能。 理解绑定“绑定”一词的基本定义是粘在一起或使其粘在一起形成一个整体。同样,Tkinter 的 bind() 方法用于将小部件中传递的事件与事件处理程序连接起来。事件处理程序是在事件发生时调用的函数。 现在让我们考虑 Tkinter 的 bind() 方法的语法 语法 sequence 参数描述了我们期望的事件,而 func 参数用于定义当该事件发生到小部件时要调用的函数。如果该小部件已经存在该事件的绑定,则旧的回调将被 func 替换;但是,我们可以通过传递 add = '+' 来保留两个回调。 我们可以借助 bind() 方法在不同级别将事件绑定到事件处理程序。
实例级绑定我们可以将事件绑定到特定的小部件。为了绑定小部件的事件,我们将在该小部件上调用 bind() 方法。 语法 参数
让我们考虑以下示例,说明如何将事件绑定到小部件的特定实例。 示例 输出 - A Key has been Pressed. A Key has been Pressed. A Key has been Pressed. A Key has been Pressed. A Key has been Pressed. A Key has been Pressed. 说明 在上述代码片段中,我们导入了 tkinter 模块。然后,我们定义了类 DisplayWindow() 来构建 GUI。在该类中,我们定义了一个初始化函数来设计主窗口。我们调用了 Tk() 类来创建一个空窗口。我们使用 geometry() 方法配置了窗口的大小和位置,并借助 title() 方法设置了其标题。然后,我们使用 Entry() 小部件创建了一个输入字段,并使用 bind() 方法将按键事件绑定到事件处理函数。然后,我们借助 pack() 方法以及 y 坐标填充 20 来定位输入字段。然后,我们调用了 mainloop() 方法来显示窗口。然后,我们定义了一个事件处理函数 on_key_press()。我们在此函数中使用了 print() 方法来在每次按键时打印一条消息。最后,我们实例化了 DisplayWindow() 类。 结果是,当我们运行代码时,屏幕上会出现一个带有输入字段的窗口。此外,当我们在输入字段中键入“welcome”时,命令提示符中会打印消息“A Key has been Pressed.”七次,表示已按下七次按键。 理解多重绑定概念如果我们需要将多个函数绑定到特定的小部件怎么办?传递包含 bind() 方法的两个语句肯定不起作用,因为第二个语句将覆盖第一个语句;因此,只会调用第二个函数,如以下示例所示 示例 输出 作为 GUI ![]() 在命令提示符中 说明 在上述代码片段中,我们导入了 tkinter 模块。然后,我们定义了类 DisplayWindow() 来构建 GUI。在该类中,我们定义了一个初始化函数来设计主窗口。我们调用了 Tk() 类来创建一个空窗口。我们使用 geometry() 方法配置了窗口的大小和位置,并借助 title() 方法设置了其标题。然后,我们使用 Entry() 小部件创建了一个输入字段,并两次使用 bind() 方法将回车键按下事件绑定到两个不同的事件处理函数。然后,我们借助 pack() 方法以及 y 坐标填充 20 来定位输入字段。然后,我们调用了 mainloop() 方法来显示窗口。然后,我们定义了一个事件处理函数 on_first_return()。我们在此函数中使用了 print() 方法来在每次按回车键时打印一条消息。同样,我们定义了另一个事件处理函数 on_second_return() 来在两次按回车键时返回一条消息。最后,我们实例化了 DisplayWindow() 类。 结果是,当我们运行代码时,屏幕上会出现一个带有输入字段的窗口。此外,当我们在输入字段中键入“welcome”并按下“回车”键时,命令提示符中会打印消息“The Return Key has been pressed twice.”。 我们可以通过在第二个使用 bind() 方法的语句中插入一个额外的参数“add”来解决此问题。此外,不要忘记将“add = "+"”赋值。此方法将调用这两个函数。因此,我们可以在 Tkinter 中启用多重绑定。 让我们考虑上面语句的以下实现。 示例 输出 作为 GUI ![]() 在命令提示符中 说明 在上述代码片段中,我们导入了 tkinter 模块。然后,我们定义了类 DisplayWindow() 来构建 GUI。在该类中,我们定义了一个初始化函数来设计主窗口。我们调用了 Tk() 类来创建一个空窗口。我们使用 geometry() 方法配置了窗口的大小和位置,并借助 title() 方法设置了其标题。然后,我们使用 Entry() 小部件创建了一个输入字段,并两次使用 bind() 方法将回车键按下事件绑定到两个不同的事件处理函数。在第二个 bind() 方法中,我们包含了设置为“+”的 add 参数。然后,我们借助 pack() 方法以及 y 坐标填充 20 来定位输入字段。然后,我们调用了 mainloop() 方法来显示窗口。然后,我们定义了一个事件处理函数 on_first_return()。我们在此函数中使用了 print() 方法来在每次按回车键时打印一条消息。同样,我们定义了另一个事件处理函数 on_second_return() 来在两次按回车键时返回一条消息。最后,我们实例化了 DisplayWindow() 类。 结果是,当我们运行代码时,屏幕上会出现一个带有输入字段的窗口。此外,当我们在输入字段中键入“welcome”并按下“回车”键时,两个函数都正常运行,并在命令提示符中打印出各自的语句。 类级绑定我们可以将事件绑定到类的所有小部件。例如,我们可以设置所有按钮小部件以响应鼠标中键单击,通过在法语和西班牙语标签之间来回切换。我们可以通过在任何小部件上调用 bind_class() 方法来将事件绑定到类的所有小部件。 bind_class() 方法中提到的“class”一词指的是 Tkinter 库使用的内部类的名称,而不是 python 类名。bind_class() 方法可用于所有小部件,并用于再次调用 Tkinter 绑定命令,但使用小部件类的名称。 以下是 bind_class() 方法的语法 语法 bind_class() 方法的基本工作原理与 bind() 方法相同。 例如,我们有一些相同类的小部件和多个输入小部件,并且我们需要将它们全部设置为相同的函数。与其为每个小部件调用 bind() 方法,我们可以简单地通过一次调用来设置它们,如以下代码片段所示。 示例 输出 作为 GUI ![]() 在命令提示符中 说明 在上述代码片段中,我们导入了 tkinter 模块。然后,我们定义了类 DisplayWindow() 来构建 GUI。在该类中,我们定义了一个初始化函数来设计主窗口。我们调用了 Tk() 类来创建一个空窗口。我们使用 geometry() 方法配置了窗口的大小和位置,并借助 title() 方法设置了其标题。然后,我们使用 Label() 小部件创建了一些标签,以向用户显示信息。然后,我们使用 Entry() 小部件创建了一个输入字段,并使用 bind_class() 方法将输入字段类的回车键按下事件绑定到事件处理函数。然后,我们借助 grid() 方法定位了标签和输入字段。然后,我们调用了 mainloop() 方法来显示窗口。然后,我们定义了一个事件处理函数 on_return()。我们在此函数中使用了 print() 方法来在每次按回车键时打印一条消息。最后,我们实例化了 DisplayWindow() 类。 结果是,当我们运行代码时,屏幕上会出现一个带有输入字段的窗口。此外,当我们在应用程序的输入字段中输入所需详细信息并按下“回车”键时,事件处理函数被调用,并且语句打印在命令提示符中。 应用级绑定我们还可以设置绑定,以便无论哪个小部件具有焦点或正在使用,某个事件都会调用处理程序。此方法称为 bind_all() 方法,用于在应用程序级别绑定事件。 让我们考虑 bind_all() 方法的语法,如下所示 语法 bind_all() 方法与 bind() 方法类似;但是,它适用于整个应用程序中的所有小部件。 例如,程序中可能有一些相同类型的小部件,它们可能属于不同的类。我们可以调用任何小部件上的 bind_all() 方法,以便在应用程序级别绑定事件。在使用 bind_all() 时,我们不需要提及类名,因为绑定应用于应用程序的每个事件。 让我们考虑以下示例,演示 bind_all() 方法的实现。 示例 输出 作为 GUI ![]() 在命令提示符中 说明 在上述代码片段中,我们导入了 tkinter 模块。然后,我们定义了类 DisplayWindow() 来构建 GUI。在该类中,我们定义了一个初始化函数来设计主窗口。我们调用了 Tk() 类来创建一个空窗口。我们使用 geometry() 方法配置了窗口的大小和位置,并借助 title() 方法设置了其标题。然后,我们使用 Label() 小部件创建了一些标签,以向用户显示信息。然后,我们使用 Entry() 小部件创建了一个输入字段,并使用 bind_all() 方法将输入字段类的回车键按下事件绑定到事件处理函数。然后,我们借助 grid() 方法定位了标签和输入字段。然后,我们调用了 mainloop() 方法来显示窗口。然后,我们定义了一个事件处理函数 on_return()。我们在此函数中使用了 print() 方法来在每次按回车键时打印一条消息。最后,我们实例化了 DisplayWindow() 类。 结果是,当我们运行代码时,屏幕上会出现一个带有输入字段的窗口。此外,当我们在应用程序的输入字段中输入所需详细信息并按下“回车”键时,事件处理函数被调用,并且语句打印在命令提示符中。 结论在上述教程中,我们了解到 Tkinter 的 bind() 方法用于将事件与小部件的特定函数(称为事件处理程序)连接或关联。此外,我们还了解到 Tkinter 包支持三个级别的绑定:实例级绑定、类级绑定和应用程序级绑定。 |
简介:在本教程中,我们将学习关于。它以矩阵形式接收输入,可以按列执行字符串连接。它还处理列表变量的长度。当您想要垂直组合矩阵时,可以使用列表推导。示例:现在,我们给出了一些垂直组合的例子……
阅读 4 分钟
在本节中,我们将讨论 Python 编程语言中的赋值运算符。在进入该主题之前,让我们简要介绍一下 Python 中的运算符。运算符是用于在操作数之间执行逻辑和数学运算的特殊符号……
阅读 6 分钟
借助前进和后退按钮,图像查看器应用程序的用户可以在图像之间导航并一次查看一张图像。让我们按照几个简单的步骤在 Python 中构建一个图像查看器应用程序。有关图像查看器应用程序的信息:该应用程序……
阅读 6 分钟
Matplotlib 是一个 Python 库,可让您创建确定性、动画和引人入胜的可视化。它用于在 Python 中制作图表,例如条形图、散点图、饼图、直方图、折线图、3D 图等。Matplotlib 库包含有关散点图的信息……
阅读 6 分钟
全世界数百万用户使用消息应用程序 Telegram。此外,Telegram 还提供 API,允许我们构建机器人并自动化消息传输。因此,在本文中,我们将使用 Python 将消息发送给 Telegram 用户。您可能知道...
阅读 3 分钟
?首先,我们可以使用内置的 str() 函数在 Python 中连接一个整数和一个字符串,该函数接受一个整数作为参数并生成一个字符串,这两个字符串可以使用“+”运算符组合。它可以实现如下:age =...
阅读 3 分钟
Python 中类变量和实例变量的区别 面向对象编程允许开发者在类级别或实例级别使用变量。变量是表示我们在程序中使用的值的必要符号。类级别的变量被称为类变量,...
5 分钟阅读
? 编程语言Python的受欢迎程度持续上升。Python是一种高级语言,它优先考虑可读性而非复杂性。由于其简单的缩进系统,它成为研究人员和程序员的首选语言。这就是为什么值得学习Python编程的原因...
阅读 6 分钟
| Python 微服务与 gRPC 在本教程中,我们将学习微服务、微服务为何重要以及如何使用 Python 编程语言实现它们。我们还将讨论 gRPC 并将其与 Python 一起使用。在当前场景中,技术更致力于...
阅读 12 分钟
Python 中模块和函数的区别 Python 是一种被认为是渐进式且以其优化能力而闻名的编程语言。Python 简化了编程中冗余的特性,使工具在使用上更加丰富。在下面的教程中,我们将讨论差异...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India