생성 시 버튼 명령 실행
Tkinter에서 Button 인스턴스가 명령 매개변수로 초기화될 때 관련 기능은 다음과 같습니다. 버튼을 클릭하면 실행됩니다. 그러나 경우에 따라 예상 동작과 달리 버튼 생성 시 명령이 즉시 실행될 수도 있습니다.
코드 예제 분석
다음 코드를 고려하세요.
from Tkinter import * admin = Tk() def button(an): print(an) print('het') b = Button(admin, text='as', command=button('hey')) b.pack() mainloop()
문제 설명
이 코드를 실행하면 버튼이 제대로 작동하지 않는 것처럼 보입니다. 버튼 클릭 시 버튼 기능을 실행하는 것이 아니라 생성 즉시 'hey', 'het'을 출력합니다.
설명
문제는 명령을 실행하는 방식에 있습니다. 매개변수를 초기화하는 중입니다. 라인:
command=button('hey')
은 버튼('hey') 함수 호출의 결과를 명령 매개변수에 전달합니다. 이는 다음과 동일합니다:
result = button('hey') command=result
button('hey') 함수가 즉시 실행되어 결과를 반환하므로 명령은 함수 참조 자체가 아닌 결과로 설정됩니다. 결과적으로 버튼을 눌렀을 때가 아닌 바로 함수가 실행됩니다.
해결책
이 문제를 해결하려면 버튼에 대한 참조를 전달해야 합니다. 실행하지 않고 기능을 수행합니다. 이렇게 하려면 명령 매개변수를 초기화할 때 괄호를 생략하면 됩니다.
command=button
추가 참고 사항
위 내용은 내 Tkinter 버튼이 클릭할 때 대신 생성할 때 명령을 실행하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!