Dan*_*Dan 26 python user-interface tkinter widget
我试图Entry
在用户使用Tkinter按下按钮后清除小部件.
我试过使用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()
Run Code Online (Sandbox Code Playgroud)
Gre*_*att 47
在通过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()
Run Code Online (Sandbox Code Playgroud)
Cha*_*iam 15
你的问题我不清楚。从http://effbot.org/tkinterbook/entry.htm#patterns来看,您似乎只需要在调用删除后进行分配即可。要将条目文本添加到小部件,请使用插入方法。要替换当前文本,您可以在插入新文本之前调用 delete。
e = Entry(master)
e.pack()
e.delete(0, END)
e.insert(0, "")
Run Code Online (Sandbox Code Playgroud)
你能贴多一点代码吗?
real
获取ent.get()
只是一个字符串的值。它不知道它来自哪里,也没有影响小部件的方法。
代替real.delete()
,调用.delete()
条目小部件本身:
def res(ent, real, secret):
if secret == eval(real):
showinfo(message='that is right!')
ent.delete(0, END)
def guess():
...
btn = Button(ge, text="Enter", command=lambda: res(ent, ent.get(), secret))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
124583 次 |
最近记录: |