import tkinter
from tkinter import font
def deleteButton(event):
canvas.delete("tag1")
main = tkinter.Tk()
main.geometry("1280x720+320+180")
main.resizable(0,0)
cv = tkinter.Canvas(main, bg = "turquoise", width = 200, height = 200)
cv.create_polygon(400, 400, 400, 400, fill = "turquoise", tag = "tag1")
cv.place(x = 300, y = 300)
cv.pack()
start_button = tkinter.Button(main, text = "Play!", command = deleteButton, fg =` `"white", bg = "#0A9AFF", relief = "flat")
start_button.place(x = 625, y = 300)
main.mainloop()
运行此代码时,我得到
“ TypeError:deleteButton()缺少1个必需的位置参数: “事件”。”
我已经尝试过.bind
,但无法解决。
我想用按钮删除画布,该怎么办?
开始新行不起作用。 谢谢
答案 0 :(得分:1)
要清除画布,请使用delete方法。为它指定特殊参数“ all”以删除画布上的所有项目(字符串“ all””是代表画布上所有项目的特殊标签):
canvas.delete(“全部”)
如果要删除画布上的某些项目(例如前景对象,而将背景对象保留在显示器上),则可以为每个项目分配标签。然后,您可以提供标签的名称,而不是“全部”。
答案 1 :(得分:0)
使用bind
时,它将自动传递代表事件的参数。因此,函数需要接受此参数。使用command=
时,没有事件参数,因此您的函数不应接受该参数。
对于错误"NameError: name 'canvas' is not defined"
,这是因为您已将画布命名为cv
,而不是canvas
。要删除您特定画布上的项目,应为cv.delete(...)
,而不是canvas.delete(...)
。