【发布时间】:2017-03-21 03:17:23
【问题描述】:
我正在使用 Python Tkinter,我有输入文本框和确定按钮。现在我已经实现了按钮逻辑,例如,如果用户输入 = 1,按下 OK 按钮后,它将打开新窗口。现在对于相同的实现,我想从键盘输入“Enter key”并打开新窗口,而不是按 OK 按钮。
我不知道如何继续。
from Tkinter import *
def UserInput():
global UI_MainForm
UI_MainForm = Tk()
UI_MainForm.resizable(1,0)
UI_MainForm.geometry("300x450+0+0")
UI_MainForm.title("ChCM 1.25 Diagnostics Main Menu")
# LabelFrame to add all the Menu menu Display items
labelframe = LabelFrame(UI_MainForm,text="Please select the below options:",width=300, height=100,bd = 2)
labelframe.pack(fill="both")
labelframe.config(relief=RIDGE)
# LabelFrame to add the User input text box and buttons
labelframe1 = LabelFrame(UI_MainForm,text="User Input:",width=300, height=100,bd = 2)
labelframe1.pack(pady=8,fill="both")
labelframe1.config(relief=FLAT)
#Entry the text and display
global entrytext
entrytext = StringVar()
entry = Entry(labelframe1,textvariable=entrytext,width=35)
entry.pack(padx = 1, pady = 5)
MainMenuDisplay = [{"ID": 1,"Description": "Display Data1"},
{"ID": 2,"Description": "Display Data2"}]
for menu in MainMenuDisplay:
temp_text = '{0}. {1}'.format(menu['ID'], menu['Description'])
Label(labelframe, text=temp_text).pack(anchor = W)
ButtonOK = Button(labelframe1, text = "OK", command =OnButtonOK, width =15)
ButtonOK.pack(side = LEFT, padx = 15, pady = 15)
UI_MainForm.mainloop()
return;
def OnButtonOK():
UI_MainForm.withdraw()
Input = int(entrytext.get())
if (Input == 1):
Data1_Menu_Display();
elif (Input == 2):
Data2_Menu_Display();
else:
print "The Input is not valid"
return;
def Data1_Menu_Display():
# self.withdraw()
global top
top = Toplevel(UI_MainForm)
top.geometry("300x450+0+0")
top.title("Display Data1")
return;
def Data2_Menu_Display():
# self.withdraw()
global top
top = Toplevel(UI_MainForm)
top.geometry("300x450+0+0")
top.title("Display Data1")
return;
def Main():
UserInput()
Main()
【问题讨论】:
-
请提供一个最小、完整且可测试的示例。请重新格式化。
-
只需将
<Return>事件绑定到您的root小部件。更多 here! -
我开始知道使用绑定
,但不知道如何在我的代码中实现。 -
方法是否正确:labelframe1.bind("
", OnButtonOK)。它不工作 -
我使用了 UI_MainForm.bind('
', OnButtonOK)。它现在工作