Tkinter <return>事件绑定在python脚本中不起作用

时间:2018-12-05 18:20:14

标签: python-3.x tkinter

感谢您抽出宝贵时间回答问题。我是脚本初学者,所以我不太熟悉GUI原理。

我正在编写一个包含tkinter的脚本,以根据用户的文本输入并按下键来搜索和打印来自Wolframalpha和Wikipedia的信息。

class citrus(tkinter.Tk):
    def __init__(self, master):
        tkinter   .Tk.__init__(self, master)
        self.master = master
        self.initialize()
    def initialize(self):
        self.grid()
        self.entry = tkinter.Entry(self)
        self.entry.bind = ("<Return>", self.OnEnter)
        self.entry.grid(column=0, row=0)
        self.grid_columnconfigure(0, weight=1)
        self.resizable(True, True)
 def OnEnter(self, event):
        input = self.entryVariable.get()
        input = input.lower
        try:
            appID = "ER92YJ-GAXAJEPXEK"
            client = wolf.Client(appID)
            res = client.query(input)
            answer = next(res.results).text
            print(answer)
        except:
            wikipedia.set_lang("en")
            print(wikipedia.summary(input, sentences=3))

if __name__ == "__main__":
    app = citrus(None)
    app.title("citrus")
    app.mainloop()

由于某种原因,在用户将文本输入文本框并按下键后,显示的GUI窗口不会执行任何操作,而应该提供从Wolframalpha或Wikipedia收集的信息。

对于脚本失败的原因,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您要重新定义bind,而不是调用它。

问题是此代码行中的=

self.entry.bind = ("<Return>", self.OnEnter)

代码应改为:

self.entry.bind("<Return>", self.OnEnter)