Python 如何将函数分配给';输入';按钮
我已经编写了一个程序,可以接收用户输入(姓名、姓氏和高中班级),当用户完成输入后,他们可以按下我创建的一个名为“回车”的按钮。然而,为了让我的程序更整洁一点,我希望用户能够使用键盘上的回车键 如何将当前链接到我定义的“Enter”按钮的功能分配到键盘上的Enter键,以便用户可以使用其中一个Python 如何将函数分配给';输入';按钮,python,function,tkinter,enter,assign,Python,Function,Tkinter,Enter,Assign,我已经编写了一个程序,可以接收用户输入(姓名、姓氏和高中班级),当用户完成输入后,他们可以按下我创建的一个名为“回车”的按钮。然而,为了让我的程序更整洁一点,我希望用户能够使用键盘上的回车键 如何将当前链接到我定义的“Enter”按钮的功能分配到键盘上的Enter键,以便用户可以使用其中一个 name_var = StringVar() def event_enter_1(): self.Enter_1.config(state=(NORMAL if name_var.g
name_var = StringVar()
def event_enter_1():
self.Enter_1.config(state=(NORMAL if name_var.get() else DISABLED))
name_var.trace('w', lambda name, index, mode: event_enter_1())
enter_name = Entry(self, textvariable=name_var)
enter_name.pack()
enter_name.focus_set()
def enter_button_1():
if len(name_var.get()) > 10 or any(l not in string.ascii_letters for l in name_var.get()):
tkMessageBox.showerror("Error", "Please enter a real name.")
else:
global student_name
student_name = name_var.get()
self.Enter_1.config(state="disabled")
self.display_surname= tk.Label(self, width=40, height=2, text = "Now please enter your surname.")
self.display_surname.pack(side="top", fill="both", expand=True)
surname_var = StringVar()
def event_enter_2():
self.Enter_2.config(state=(NORMAL if surname_var.get() else DISABLED))
surname_var.trace('w', lambda name, index, mode: event_enter_2())
surname = Entry(self, textvariable=surname_var)
surname.pack()
surname.focus_set()
def enter_button_2():
if len(surname_var.get()) > 10 or any(l not in string.ascii_letters for l in surname_var.get()):
tkMessageBox.showerror("Error", "Please enter a real name.")
else:
global student_surname
student_surname = surname_var.get()
self.Enter_2.config(state="disabled")
self.display_tutor = tk.Label(self, width=40, height=2, text = "Now please enter your tutor group.")
self.display_tutor.pack(side="top", fill="both", expand=True)
tutor_var = StringVar()
def event_enter_3():
self.Enter_3.config(state=(NORMAL if tutor_var.get() else DISABLED))
tutor_var.trace('w', lambda name, index, mode: event_enter_3())
tutor = Entry(self, textvariable=tutor_var)
tutor.pack()
tutor.focus_set()
def enter_button_3():
if tutor_var.get() not in ["5A1", "5A2", "5B1", "5B2", "5B3", "5C1", "5C2", "6A1", "6A2", "6B1", "6B2", "6C1", "6C2", "6C3"]:
tkMessageBox.showerror("Error", "Please enter a tutor group that exists.")
else:
global student_tutor_group
student_tutor_group = tutor_var.get()
self.Enter_3.config(state="disabled")
tkMessageBox.showinfo("Details Confirmation", "Thank you for entering your details. Now you can begin the quiz. Good luck!")
parent.question_1.config(state="normal")
parent.enter_name.config(state="disabled")
self.destroy
self.Enter_3 = Button(self, text="Enter", width=10, command=enter_button_3)
self.Enter_3.pack()
self.Enter_3.config(state="disabled") #Initially the enter button is disbabled as the user hasn't started typing
self.Enter_2 = Button(self, text="Enter", width=10, command=enter_button_2)
self.Enter_2.pack()
self.Enter_2.config(state="disabled") #Initially the enter button is disbabled as the user hasn't started typing
self.Enter_1 = Button(self, text="Enter", width=10, command=enter_button_1)
self.Enter_1.pack()
self.Enter_1.config(state="disabled") #Initially the enter button is disbabled as the user hasn't started typing
如果这让人困惑,我真的很抱歉,我是OO编程新手,所以可能有更有效的方法。非常感谢您的帮助。谢谢您需要添加绑定以将事件连接到函数。在这种情况下,事件是
。你可以这样做:
enter_name.bind('<Return>', enter_button_1)
谢谢,我将如何修改我的函数?
def enter_button_1(event=None)