【问题标题】:Calling Different Functions tkinter调用不同的函数 tkinter
【发布时间】:2013-06-09 21:42:08
【问题描述】:

我正在尝试根据 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() 函数。但是我无法弄清楚。有人有什么建议吗?

【问题讨论】:

    标签: python python-3.x tkinter


    【解决方案1】:

    您正在主循环之前检索条目的文本。取而代之的是,您应该检查回调函数中的内容:

    def callback(event):
        text = inputfield.get()
        if 'weather:' in text:
            weather()
        if 'open:' in text:
            program()
    
    # ...
    inputfield.bind('<Return>', callback)
    

    此外,如果您绑定两次 &lt;Return&gt;event,第二次绑定将覆盖前一次绑定 (unless you pass "+" as the third argument)。但是,只需一个回调,您就足以控制这两种情况。

    【讨论】:

      猜你喜欢
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      相关资源
      最近更新 更多