如何在 Tkinter 子级 widget 上捕获事件?


假设我们正在创建一个应用,该应用会与用户点击应用中可见的按钮进行交互。为了了解事件是如何工作的,我们必须创建一个回调函数以及一个触发事件的触发器。每当用户点击按钮时,事件就会发生,并且需要将其捕获到屏幕上。

示例

在这个示例中,我们将创建一个 Listbox widget,其中会有一份项目清单。当我们选择一个项目时,它会捕获用户点击的内容。为了找出被捕获事件,我们可以使用print() 函数在屏幕上打印。

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win=Tk()

# Set the size of the window
win.geometry("700x350")

# Create a Listbox widget
lb=Listbox(win)
lb.pack(expand=True, fill=BOTH)

# Define a function to edit the listbox ite
def save():
   for item in lb.curselection():
      print("You have selected "+ str(item+1))

# Add items in the Listbox
lb.insert("end","item1","item2","item3","item4","item5")

# Add a Button To Edit and Delete the Listbox Item
ttk.Button(win, text="Save", command=save).pack()

win.mainloop()

输出

执行上述代码将显示一个窗口,其中列出了一个项目清单。如果我们点击“保存”按钮,它会告诉我们捕获了什么事件。

现在,从列表中选择一个项目并点击“保存”按钮。它会在控制台中打印出你选择的项目。

You have selected 3

已更新: 2021 年 6 月 18 日

531 次浏览

开启你的职业

通过完成课程获得认证

开始
广告