2013-07-25 5 views
1

поэтому у меня есть скрипт Python, который синхронизирует файлы с моим NAS каждые x минут. Я пытаюсь написать индикатор приложения (ubuntu), чтобы следить за процессом вышеупомянутого скрипта.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) для Ubuntu под названием indicator-ppa-download-statistics, найденный here, который реализует аналогичную концепцию, к которой (я понимаю) вам нужен. Я не уверен, что вам нужно будет использовать механизм блокировки или глобальный флаг, который я использовал в моем экземпляре, но, по крайней мере, многопоточный подход позволит вещам NAS происходить в фоновом режиме, не блокируя индикатор используемый пользователем.

Смежные вопросы