"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 왜 Tkinter 위젯이 원인으로 저장되는 이유 \ "nonetype \ '객체는 속성이 없습니다 \'configure \ '? \"

왜 Tkinter 위젯이 원인으로 저장되는 이유 \ "nonetype \ '객체는 속성이 없습니다 \'configure \ '? \"

2025-03-04에 게시되었습니다
검색:747

Why Do Tkinter Widgets Stored as None Cause \

이 문제의 한 가지 이유는 Tkinter의 그리드, 팩 및 배치 방법이 작동하는 방식입니다. 이 방법은 현장에 있고 리턴이 없으므로 위젯이 생성 된 것과 동일한 선에서 호출 할 수 없습니다. 대신 위젯이 생성 된 다음 다음 줄에서 호출 된 내 위치 메소드를 호출해야합니다.

예를 들어, 제공된 코드 스 니펫에서 :

def genabc () : 범위 (3)의 r의 경우 : 범위 (10)의 C의 경우 : if (c (r*10) & gt; 25) : 부서지다 인쇄 (C (R*10)) b [c (r*10)] = button (f, text = chr (97 c (r*10)), command = lambda a = c (r*10) : color (a), borderwidth = 1, width = 5, bg = "흰색"). 그리드 (row = r, column = c)

그리드 메소드가 바로 위젯이 생성 된 후에 호출됩니다. 이를 해결하려면 코드는 다음과 같이 재구성되어야합니다.

def genABC():
    for r in range(3):
        for c in range(10):
            if (c (r*10)>25):
                break
            print(c (r*10))
            b[c (r*10)] = Button(f, text=chr(97 c (r*10)), command=lambda a=c (r*10): color(a), borderwidth=1,width=5,bg="white").grid(row=r,column=c)

위젯 작성 및 내부 메소드 호출을 분리하여 위젯은 올바르게 구성되고 향후 상호 작용을 위해 액세스 할 수 있습니다. 이 조정은 Tkinter 위젯을 파이썬 응용 프로그램 내에 효과적으로 저장하고 활용할 수 있도록합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3