поддерживать поток в PyQt4 - PullRequest
1 голос
/ 09 июля 2010

У меня есть приложение PyQt4, которое в какой-то момент упаковывает большой файл с помощью модуля tarfile. Поскольку модуль tarfile не реализует никакой стратегии обратного вызова, он блокируется, и графический интерфейс Qt перестает отвечать на запросы.

Я хочу, чтобы графический интерфейс продолжал обновляться в течение этого времени. Единственная возможность - это отдельная тема. Итак, я запускаю QThread. Что мне нужно сделать в QThread, чтобы само обновление GUI? Как только процесс tar завершится, я хочу завершить поток.

Спасибо! Nathan

1 Ответ

1 голос
/ 10 июля 2010

QThread в значительной степени идентичны обычным потокам Python, поэтому вы можете просто использовать обычные методы связи. Тем не менее, QThreads также имеет несколько доступных сигналов, так что если вы просто подключитесь к ним, то все готово.

В вашем коде GUI сделайте что-то вроде этого, и вы почти закончили:

thread = Thread()
thread.finished.connect(gui.do_update_thingy)

Существует также сигнал terminated и started, который вы можете использовать:)

...