所以我试图为一个项目编写代码,但我一天都无法取得任何进展,所以我决定问: 我的目标是有一个复选框(不一定必须在开始时检查),如果选中显示红线,但如果未选中,则红线消失(这就是我挣扎的地方)。我已经设法在选中按钮的情况下显示红线,但之后如果取消选中,则没有任何反应,红线仍然存在。这是我最近的尝试:
from tkinter import *
app = Tk()
canvas = Canvas(app, width=400, height=600)
canvas.pack()
redline = canvas.create_line(0, 100, 200, 50, fill="red")
def click(canvas=redline, *event):
if var.get():
redline
else:canvas.delete(redline)
var = IntVar()
check = Checkbutton(app, text = "Redline", variable=var, command=click)
check.pack()
check.toggle()
app.mainloop()
我很感激任何帮助。
答案 0 :(得分:1)
command=
期望没有参数的函数。
您必须再次创建一行。
from tkinter import *
# --- functions ---
def click():
global redline
if not var.get():
canvas.delete(redline)
else:
redline = canvas.create_line(0, 100, 200, 50, fill="red")
# --- main ---
app = Tk()
canvas = Canvas(app, width=400, height=600)
canvas.pack()
redline = canvas.create_line(0, 100, 200, 50, fill="red")
var = IntVar()
check = Checkbutton(app, text = "Redline", variable=var, command=click)
check.pack()
check.toggle()
app.mainloop()