저는 PyGTK로 간단한 응용 프로그램을 개발하고 있습니다. 우분투에서 클릭했을 때 하위 프로세스를 실행하는 버튼이 있습니다. 단추를 클릭 한 후 상태 막대를 한 번만 변경하고 하위 프로세스가 완료되면 상태 막대를 한 번 변경하려고합니다. 그러나 지금은 하위 프로세스가 완료 될 때까지 기다렸다가 상태 표시 줄을 "완료"로 변경하기 때문에 제대로 작동하지 않습니다. 내 코드는 지금이 같은 것입니다 : (! 그것은 어리석은 소리) 나는 다른 함수에 상태 표시 줄을 변경 한 다음 나머지를 할 수있는 함수를 호출하지만 작동하지 않았다 할 생각동일한 함수에서 서브 프로세스 호출 전에 python 명령을 실행 하시겠습니까?
def on_button_clicked(self, widget):
self.statusBar.push(1, "Doing the subprocess...")
command = '...'
print subprocess.call(command,shell=True)
...
self.statusBar.push(1, "Done!")
. 백그라운드에서 명령이 실행되는 동안 "프로세스 수행 중 ..."상태를 표시하도록 코드를 어떻게 변경해야합니까?
[이] (http://stackoverflow.com/questions/8583975/stop-pygtk-gui-from-locking-up-during-long-running-process) SO post에서 살펴볼 수 있습니다. 하위 프로세스가 기본 UI 스레드 외부에서 실행되도록하는 방법의 예입니다. – TML