"다른 개체에서 TkInter 이벤트를 어떻게 호출합니까?"라는 질문에 대답하려면 event_generate
명령을 사용하십시오. 루트 윈도우의 이벤트 대기열에 이벤트를 삽입 할 수 있습니다. Tk의 강력한 가상 이벤트 메커니즘과 결합하면 편리한 메시지 전달 메커니즘이됩니다. 예를 들어
다음 event_generate
호출이 즉시 반환됩니다
from tkinter import *
def doFoo(*args):
print("Hello, world")
root = Tk()
root.bind("<<Foo>>", doFoo)
# some time later, inject the "<<Foo>>" virtual event at the
# tail of the event queue
root.event_generate("<<Foo>>", when="tail")
참고. 그것이 당신이 원하는 것인지 아닌지는 분명하지 않습니다. 일반적으로 말하자면, 이벤트 기반 프로그램이 특정 이벤트에 대한 응답 대기를 차단하는 것을 원하지 않습니다. 은 GUI을 고정시킵니다.
이렇게해도 문제가 해결되는지 잘 모르겠습니다. 귀하의 코드를 보지 않고서는 귀하의 실제 문제가 무엇인지 잘 모릅니다. 예를 들어, 응용 프로그램을 잠그지 않고 루트가 전달되는 객체 생성자에서 root의 메서드에 액세스 할 수 있습니다. 이것은 당신의 코드에서 진행중인 다른 것을 알려줍니다.
여기에 성공적으로 다른 객체에서 루트 창에서 방법 접근의 예 :
from tkinter import *
class myClass:
def __init__(self, root):
print("root background is %s" % root.cget("background"))
root = Tk()
newObj = myClass(root)