我搜索过但没有找到答案。 如何通过在每个数字后更新窗口并使用函数而不是类来显示画布中用户的给定数字? 这是我的代码。
# Import the module
from Tkinter import *
root = Tk()
# intialize globals
value = 98
# Define event handler functions
canvas = Canvas(width=100, height=100, bg='blue')
canvas.pack(expand=YES, fill=BOTH)
def enter():
global value
value = float(Enter_number.get())
canvas.create_text(20, 20, text=str(value))
# Register event handlers
Enter_number = Entry(root)
Enter_number.pack()
Button(root,text="Get Number",command = enter).pack(side=TOP, fill=X)
# Start frame and timers
root.mainloop()
答案 0 :(得分:0)
您可以使用canvas.delete
从画布中删除以前绘制的元素。
value = float(Enter_number.get())
canvas.delete(ALL)
canvas.create_text(20, 20, text=str(value))
或者,您可以跟踪create_text
给出的项ID,并使用canvas.itemconfig
更改现有文本项的文本,而不是创建新文本项。通常我会在类中保留对id的引用,但是因为你禁止它,你可以使用全局。
text_id = None
def enter():
global value
global text_id
value = float(Enter_number.get())
if text_id == None:
text_id = canvas.create_text(20, 20, text=str(value))
else:
canvas.itemconfig(text_id, text=str(value))