首页 > 解决方案 > 如何将不同的条目绑定到返回键

问题描述

我正在尝试做一些非常简单的事情,假设我有 2 个条目,名字:第二个名字:

当我按回车键时,它会执行这两个功能。我试图让它在我只在其中一个条目中按 enter 的地方,它只会执行那个条目。我怎样才能做到这一点?这是代码

root = tk.Tk()

firstLabel = tk.Label(root, text="First Name:")
firstEntry = tk.Entry(root)

secondLabel = tk.Label(root, text="Last Name: ")
secondEntry = tk.Entry(root)

def save(event=None):
    print("HELLO")
    first_value = firstEntry.get()
    print(first_value)


def save2(event=None):
    print("HELLO2")
    second_value = secondEntry.get()
    print(second_value)


root.bind('<Return>', save, firstEntry)
root.bind('<Return>', save2, secondEntry)

root.mainloop()

现在,当我按回车键时,它会打印两个 HELLO,我该如何设置它,以便它只执行那个的 def。

标签: pythontkinter

解决方案


这是解决方案:

import tkinter as tk

root = tk.Tk()

firstLabel = tk.Label(root, text="First Name:")
firstEntry = tk.Entry(root)

secondLabel = tk.Label(root, text="Last Name: ")
secondEntry = tk.Entry(root)

firstLabel.grid(row=1, column=1)
firstEntry.grid(row=1, column=2)
secondLabel.grid(row=2, column=1)
secondEntry.grid(row=2, column=2)

def save(event=None):
    print("HELLO")
    first_value = firstEntry.get()
    print(first_value)


def save2(event=None):
    print("HELLO2")
    second_value = secondEntry.get()
    print(second_value)


firstEntry.bind('<Return>', save)
secondEntry.bind('<Return>', save2)

root.mainloop()

您必须绑定到每个条目而不是根目录(如@Programmer 所说)。


推荐阅读