2012-08-27 2 views
0

tryme은 gui에서 "snackPlay"버튼을 누를 때만 실행되지만 스크립트를 실행하는 즉시 실행됩니다. tryme을 명령에서만 실행할 수있게하려면 어떻게해야합니까? 감사합니다. .Tkinter 버튼을 사용하여 스레드에서 기능 실행 및 중지

import threading 
from Tkinter import * 
from tkSnack import * 


class MyThread (threading.Thread): 

    def tryme (self): 

     print 'up uP UP'     

root = Tk() 
initializeSnack(root) 

f = Frame(root) 
f.pack() 
Button(f, bitmap='snackPlay', command=MyThread().tryme()).pack(side='left') 
root.mainloop() 

답변

1

나는 스레딩에 대해 많이 모르지만, (나는 모든 tkSnack 물건을 제거한 후에는 나를 위해 작동) 당신은 command = MyThread().tryme 대신 command = MyThread().tryme()을 시도해야합니다.

Tkinter를 콜백 호출 객체결과 작동하지 기대합니다.

+0

@ user1627762 - 확실하지 않습니다 (말했듯이, 나는 스레딩을 많이하지 않습니다). 나는'False'로 초기화 된'MyThread'에 부울 속성을 추가 한 다음'True'로 전환 할 때마다 루프에서 빠져 나올 수 있다고 생각합니다. 그런 다음 해당 속성을 토글하는 두 번째 버튼을 추가하십시오. 하지만 내가 말했듯이 그것은 단지 추측 일뿐입니다. – mgilson

관련 문제