Я написал приложение Python / QT, которое загружает файлы. Как я могу остановить его от "выпадения" через несколько секунд?

Вот суть . Приложение все еще работает, и индикатор выполнения все еще будет перемещаться, но окно станет серым, и если я нажму X, чтобы закрыть его, появится всплывающее окно с сообщением "Окно X не отвечает, принудительно завершить?" Если я принудительно завершу работу, окно закроется, но я вижу, что приложение все еще работает, когда я запускаю его из терминала. Я использую QT 4.

1
задан 15 August 2012 в 23:49

2 ответа

Проблема наиболее вероятна, что, в то время как Ваши функции загрузки работают, Ваше приложение не может ответить на события - управление не возвращается к основному циклу.

я думаю, что самый простой механизм должен сделать загрузки в отдельных потоках и использовать механизм сигналов и слотов QT для обновления индикаторов выполнения (потоки не могут взаимодействовать непосредственно с пользовательским интерфейсом).

кроме того, вместо вводных файлов для выписывания ответа HTTP Вы могли бы найти более эффективным использовать функцию как urllib.urlretrieve для записи файлов непосредственно.

1
ответ дан 15 August 2012 в 23:49

Это кажется, что окно не уничтожается. Действительно ли это - главное окно Вашего приложения или какое-то диалоговое окно?

, Если это - диалоговое окно, удостоверьтесь, что после вызова объекта окна, следующей строки, или после того, как возвращаемое значение для окна захватывается, Вы звоните "window_object.destroy ()".

, Если бы это - Ваше главное окно, Вы, возможно, хотели бы изменить метод обратного вызова для X кнопок с чем-то для уничтожения окна, возможно, self.destroy ()?

0
ответ дан 15 August 2012 в 23:49

Другие вопросы по тегам:

Похожие вопросы: