2013-07-25 9 views
1

그래서 매 x 분마다 NAS에 파일을 동기화하는 Python 스크립트가 있습니다. 나는 위의 스크립트의 프로세스를 따라 응용 프로그램 표시기 (우분투)를 작성하려고합니다.Gtk3 appIndicator - 사용자 입력없이 아이콘/텍스트 업데이트

나는 스크립트에 표시 코드를 포함하고 표시를 업데이트 할 수 없습니다 GLib.timeout_add (10, handler_timeout)를 사용하는 경우 동기화가 완료 될 때까지 - 즉, 아래의 레이아웃 참조 :

*

setupIndicator() 
sync(): 
    update app indicastor to say currently syncing 
    sync to nas - takes say 5mins 
    update app indicator - sync comlplete 
GLib.timeout_add(30minutes, self.sync) 
Gtk.main() 

*

이것은 내가하고 싶은 일이지만 물론 이런 식으로 작동하지 않습니다. 내 문제는 여기에서 어디로 가야할지 모르겠다 - 어떻게이 일을 할 수 있니?

+0

비슷한 문제가 있으며 문제를 해결할 수 있었습니까? – sparrow

답변

0

당신은 NAS 기능을 스레드에 넣어야하고 그 스레드는 각 업데이트에서 시작한다고 생각합니다.

스레드가 수행하는 첫 번째/마지막 작업은 표시기를 사용 중/유휴 상태로 업데이트하는 것입니다.

우분투 용 appindicator (Python 3, GTK + 3)를 indicator-ppa-download-statistics으로 작성했으며, 사용자가 이해하는 것과 비슷한 개념을 구현하는 here을 발견했습니다. 내 인스턴스에서 사용한 잠금 메커니즘이나 전역 플래그를 사용해야하는지 잘 모르겠지만 최소한 스레드 방식을 사용하면 표시기를 차단하지 않고 백그라운드에서 NAS 항목을 사용할 수 있습니다. 사용자가 사용하고 있습니다.