Существует только один основной цикл в gtk
одновременно, то есть gtk.main
выходит на новый уровень и gtk.main_quit
существует с этого уровня.
Обычно, что вам нужноdo is - это рабочий поток create, который продолжает работать параллельно и обновляет виджеты при получении новой информации.Тем не менее, в соответствии с описанной вами проблемой, я считаю, что вам просто нужно отслеживать файл на предмет изменений с gio
следующим образом:
monitor = gio.File(filename).monitor()
monitor.connect('changed', file_changed_cb)
При каждом изменении файла будет издан сигнал, и file_changed_cb
метод обратного вызова будет выполнен.Там вы можете обновить виджеты, чтобы они соответствовали новой информации из отслеживаемого файла.Однако обратите внимание, что если ваш метод обратного вызова занимает слишком много времени для завершения, ваше приложение может выглядеть не отвечающим, то вам нужно перейти к стратегии потока.