在 Tkinter 中按下按钮后如何清除 Entry 小部件?

新手上路,请多包涵

我正在尝试在用户使用 Tkinter 按下按钮后清除 Entry 小部件。

我尝试使用 ent.delete(0, END) ,但我收到一条错误消息,指出字符串没有 delete 属性。

这是我的代码,我在 real.delete(0, END) 上遇到错误:

 secret = randrange(1,100)
print(secret)
def res(real, secret):
    if secret==eval(real):
        showinfo(message='that is right!')
    real.delete(0, END)

def guess():
    ge = Tk()
    ge.title('guessing game')

    Label(ge, text="what is your guess:").pack(side=TOP)

    ent = Entry(ge)
    ent.pack(side=TOP)

    btn=Button(ge, text="Enter", command=lambda: res(ent.get(),secret))
    btn.pack(side=LEFT)

    ge.mainloop()

原文由 Dan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 664
2 个回答

在浏览了 Tkinter 简介 之后,我想出了下面的代码,除了显示文本字段并在按下 "Clear text" 按钮时将其清除外,它什么都不做:

 import tkinter as tk

class App(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master, height=42, width=42)
        self.entry = tk.Entry(self)
        self.entry.focus()
        self.entry.pack()
        self.clear_button = tk.Button(self, text="Clear text", command=self.clear_text)
        self.clear_button.pack()

    def clear_text(self):
        self.entry.delete(0, 'end')

def main():
    root = tk.Tk()
    App(root).pack(expand=True, fill='both')
    root.mainloop()

if __name__ == "__main__":
    main()

原文由 GreenMatt 发布,翻译遵循 CC BY-SA 3.0 许可协议

我不清楚你的问题。从 http://effbot.org/tkinterbook/entry.htm#patterns 看来,您似乎只需要在调用删除后进行分配。要将条目文本添加到小部件,请使用 insert 方法。要替换当前文本,您可以在插入新文本之前调用 delete。

 e = Entry(master)
e.pack()

e.delete(0, END)
e.insert(0, "")

您可以发布更多代码吗?

原文由 Charles Merriam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题