2012-06-06 4 views
3

여기 내 딜레마가 있습니다. pygtk 윈도우가있는 로그 파서가 있습니다. 사용자가 대화 상자를 통해 파일을 연 후 열기가 완료되면 (진행 시간이 길어질 수 있으므로) 대략 진행 막대가 표시됩니다. 필자는 최근 사용자가 명령 줄을 통해 파일을 지정할 수있는 옵션을 추가했습니다.gtk.main을 호출 한 후 함수를 실행하십시오.

내 문제는 gtk.main()을 호출하기 전에 파일을로드해야하기 때문입니다. 따라서이 긴로드가 완료 될 때까지 창과 더 중요한 진행률 막대가 표시되지 않으므로 사용자는 아무런 표시도하지 못합니다.

따라서 gtk.main()을 호출 한 후 함수를 실행하거나 다른 방법을 사용하는 방법이 있기를 바랍니다. 감사합니다

+1

이 FAQ 항목을 참조하십시오 : 과정, 당신은 진행률 표시 줄을 증가 할 때마다 시작하기 전에, 당신은 Gtk는 같은 것을 사용하여 잡을 수 있도록해야합니다? req = show & file = faq23.020.htp – schlamar

+0

long 연산을 구현 한 스레드를 생성하고'gtk.main()'을 호출하기 전에 진행 대화 상자를 표시 할 수 있습니다. 또한,'gtk.main()'전에, 당신은 현재 작업의 진행을 요청하고 진행 막대를 업데이트하는'gobject.timeout_add'를 사용하여 타임 아웃을 생성해야 할 수도 있습니다. – eagleoneraptor

+0

'thread'도 사용하고 있습니다. – aliva

답변

1

명령 줄 인수를 구문 분석하는 즉시 명령 줄에서 프로세스를 시작하는 대신 명령 줄 인수를 응용 프로그램 클래스에 전달하거나 변수에 저장하고 gtk.main을 입력 한 후 처리하십시오. . 그렇게하면 GUI를 먼저 설정할 수 있습니다. http://faq.pygtk.org/index.py :

while Gtk.events_pending(): 
     Gtk.main_iteration() 
+0

궁극적으로 커맨드 라인 인수가 호출 될 때'gtk.main()'전에 직접 호출되는로드 함수의 코드 예제가 있습니다. 감사. – steveo225

관련 문제