저는 명령을 보내기 위해 직렬 포트를 사용하는 python으로 gui를 만들고 있습니다. GUI가없는 예전 스크립트에서는 write 명령 사이에 time.sleep (x)를 사용했습니다 (성공하려면 명령이 필요합니다). 이제 내가 GUI 환경을 사용할 때, 잠을 쓸 수 없어서 나중에 사용할 수 있습니다.값을 넘길 때 self.after가 대기하지 않습니다
잘 작동하지만 : 내 gui에 Tkinter를 사용하고 있습니다. 버튼 시작을 누르면 OnButtonClickSTART가 x 시간 후에 다른 함수를 시작합니다. 자아와 함께 나는 모든 프로세스 사이에서 x 초를 기다린다. 그것은 작동하지만, 함수에 값을 주면 주어진 시간을 기다리지 않습니다.
def OnButtonClickSTART(self):
print "START"
self.button1.configure(state='disabled')
self.after(1000, self.waitmore)
def waitmore(self):
value = 5
print value
self.after(10000,self.waitmuchmore(value))
def waitmuchmore(self,value):
print value
self.after(10000,self.OnButtonClickSTOP)
def OnButtonClickSTOP(self):
print "STOP"
self.button1.configure(state='normal')
그리고 여기에는 일련의 명령을 실행하는 더 좋은 방법이 있습니다. 잠과 마찬가지로 하나의 기능으로 작동하지만 GUI를 비활성화하지 않습니다. 즉시 waitmuchmore
메소드를 호출 self.waitmuchmore(value)
를 사용
들으
그것은 당신이 준 시간을 보인다 : 당신은
lambda
expression 또는functools.partial
이value
으로waitmuchmore
를 호출하는 새로운 기능을 반환하고 대신self.after
에 그것을 전달하는 하나를 사용합니다 self.after는 상수 값을가집니다. – Reti43