1
아래 실험에서 Button1을 누르면 태그 상자 레이블이 나타나야합니다. 그러나 Button2에 대한 언론에 따라이를 수행하면 사라지는 함수의 delete 명령에서 문제를 참조한 다음 tk 모듈의 "태그 검색 표현식에서 잘못된 부울 연산자"를 참조하는 중 오류가 발생합니다.Python Tkinter canvas.delete failure
from tkinter import *
from tkinter import ttk
class MainWindow(Frame):
def __init__(self,master):
super().__init__()
self.pack(fill=Y, side=LEFT)
self.booking_canvas = Canvas(self, width=400,
height=100,background="red")
self.button1 = Button(self.booking_canvas, text = "Appear", command =
self.appear)
self.button2 = Button(self.booking_canvas, text="Disappear",
command=self.disappear)
self.booking_canvas.create_window(20,10,window = self.button1)
self.booking_canvas.create_window(80, 10, window=self.button2)
self.booking_canvas.pack(side=LEFT)
def appear(self):
self.tagbox = Label(self.booking_canvas,text="Hello")
self.booking_canvas.create_window(200,10,window = self.tagbox, anchor
= NW)
def disappear(self):
self.booking_canvas.delete(self.tagbox)
root = Tk()
MainWindow(root)
root.mainloop()
도와 주실 수 있습니까? 나는 오류 메시지를 아주 잘 모르겠다. 나는 문서에서 찾은 간단한 예제에서 .delete 메소드가 작동하도록 만들었지 만, 여기서는 그렇지 않다.
질문에 실제 오류를 넣으십시오. 또한 delete 메소드의 첫 번째 인수는 태그 또는 ID 여야하지만 위젯에 대한 참조를 전달하고 있어야합니다. –
나는 여전히 프로토콜을 배우는 파이썬 초보자입니다. 콜백 전체를 포함해야합니까? 그들은 꽤 길어질 수 있습니다. @falsetru가 지적한 것과 같은 해결책에 감사드립니다. – user3474688