猿问

调用不同的函数tkinter

我正在尝试根据Tkinter程序中输入的文本调用不同的函数。


root=Tk()

tex=Text(root)

tex.pack(side='right')

inputfield = Entry(root)

inputfield.pack(side='bottom')

text = inputfield.get()

if 'weather:' in text:

    inputfield.bind('<Return>', lambda _: weather())

if 'open:' in text:

     inputfield.bind('<Return>', lambda _: program())


root.mainloop()

我试图做到这一点,所以如果输入的文本包含该字符weather:,它将调用该weather()函数。但是,如果输入的文本包含该文本,open:则它将打开该program()函数。但是我无法弄清楚。有人有什么建议吗?


神不在的星期二
浏览 172回答 1
1回答

江户川乱折腾

您正在检索mainloop之前的Entry文本。取而代之的是,您应该检查回调函数中的内容:def callback(event):&nbsp; &nbsp; text = inputfield.get()&nbsp; &nbsp; if 'weather:' in text:&nbsp; &nbsp; &nbsp; &nbsp; weather()&nbsp; &nbsp; if 'open:' in text:&nbsp; &nbsp; &nbsp; &nbsp; program()# ...inputfield.bind('<Return>', callback)此外,如果您将<Return>事件绑定两次,则第二次绑定将覆盖前一次(除非您"+"作为第三个参数传递)。但是,仅使用一个回调,您就足以控制两种情况。
随时随地看视频慕课网APP

相关分类

Python
我要回答