이 답변 의 코드를 테스트했으며 제대로 작동합니다.
코드는 다음 Application
과 같은 클래스를 만듭니다 .
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
다음을 사용하여 인스턴스를 만듭니다.
root = Tk()
app = Application(master=root)
그러나 내가 이해하지 못하는 한 가지가 있습니다. 생성자가 None 객체를 인수로 사용 def __init__(self, master=None):
하지만 Application()
클래스를 root=Tk()
인스턴스로 전달하는 이유는 무엇입니까?
클래스는 Frame
생성자를 복사합니다 . 그것은 너무 선택합니다 master
인수를. 당신은하지 않습니다 있습니다 . 비록 여기에 코드 하나를 통과하지, 마스터 위젯에 전달하는 참조 * frame
섹션 의 Tkinter의에의 소개 :
Frame(master=None, **options)
(클래스)
위젯 컨테이너.
tkinter
문서의 예는 같은 패턴을 포함한다 :
from Tkinter import * class Application(Frame): # ... def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() root = Tk() app = Application(master=root)
이렇게하면 코드가 더 유연 해집니다. 이제 Application
마스터없이 인스턴스를 만들고 나중에 바인딩 할 Tk 객체를 사용하는 코드에 전달할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다