为了账号安全,请及时绑定邮箱和手机立即绑定

调用不同的函数tkinter

调用不同的函数tkinter

神不在的星期二 2021-03-22 16:17:46
我正在尝试根据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()函数。但是我无法弄清楚。有人有什么建议吗?
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您正在检索mainloop之前的Entry文本。取而代之的是,您应该检查回调函数中的内容:


def callback(event):

    text = inputfield.get()

    if 'weather:' in text:

        weather()

    if 'open:' in text:

        program()


# ...

inputfield.bind('<Return>', callback)

此外,如果您将<Return>事件绑定两次,则第二次绑定将覆盖前一次(除非您"+"作为第三个参数传递)。但是,仅使用一个回调,您就足以控制两种情况。


查看完整回答
反对 回复 2021-03-31
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信