簡體   English   中英

TKinter使用Checkbutton顯示/隱藏canvas.line

[英]TKinter show/hide canvas.line with Checkbutton

因此,我試圖為一個項目編寫代碼,但是有一天我無法在此上取得任何進展,所以我決定問:我的目標是要有一個復選框(不一定必須在開始時進行檢查),如果選中顯示紅線,但如果未選中,則紅線消失(這就是我奮斗的地方)。 我設法使紅線出現在選中按鈕的位置,但是之后如果我取消選中,則什么也沒有發生,並且紅線仍然存在。 這是我最近的嘗試:

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()

非常感謝您提供的任何幫助。

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM