[英]Bind 'Enter' on complicated Tkinter code
我正在嘗試對在GitHub上找到的代碼進行一些調整。 tkinter gui可以完美運行,但我想將Enter按鈕綁定到“ Get Response”按鈕:
class TkinterGUIExample(tk.Tk):
def initialize(self):
'''
Set window layout.
'''
self.grid()
self.usr_input = ttk.Entry(self, state='normal')
self.usr_input.grid(column=0, row=0, sticky='nesw', padx=3, pady=3)
self.respond = ttk.Button(self, text='Get Response', command=self.get_response)
self.respond.grid(column=1, row=0, sticky='nesw', padx=3, pady=3)
self.conversation_lbl = ttk.Label(self, anchor=tk.E, text='Conversation:')
self.conversation_lbl.grid(column=0, row=1, sticky='nesw', padx=3, pady=3)
self.conversation = ScrolledText.ScrolledText(self, state='disabled')
self.conversation.grid(column=0, row=2, columnspan=2, sticky='nesw', padx=3, pady=3)
所以我知道我的按鈕在哪里,但是我不知道在使用相同語法時如何,何時或在何處綁定它。
我的完整代碼可以在這里找到: https : //github.com/graylu21/ELIZA-ChatterBot/blob/master/ELIZAChatterBot.py
只需向'<Return>'
添加綁定:
self.respond = ttk.Button(self, text='Get Response', command=self.get_response)
self.respond.grid(column=1, row=0, sticky='nesw', padx=3, pady=3)
self.bind('<Return>', self.get_response)
在self
窗口處於活動狀態時,每當按Enter / Return (Tkinter使用后者,因為'<Enter>'
指的是當鼠標光標進入小部件時),它將調用self.get_response
。
得到它的工作! 在以下位置的評論中找到了解決方案: 如何將Enter鍵綁定到Tkinter中的按鈕
我沒有將Enter鍵綁定到按鈕,而是將其綁定到Entry窗口!
self.usr_input = ttk.Entry(self, state='normal')
self.usr_input.grid(column=0, row=0, sticky='nesw', padx=3, pady=3)
self.usr_input.focus() #Sets focus to the input bar at start
self.usr_input.bind('<Return>', lambda e: self.get_response()) #Binds the Enter key
self.respond = ttk.Button(self, text='Get Response', command=self.get_response)
self.respond.grid(column=1, row=0, sticky='nesw', padx=3, pady=3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.