Вот суть . Приложение все еще работает, и индикатор выполнения все еще будет перемещаться, но окно станет серым, и если я нажму X, чтобы закрыть его, появится всплывающее окно с сообщением "Окно X не отвечает, принудительно завершить?" Если я принудительно завершу работу, окно закроется, но я вижу, что приложение все еще работает, когда я запускаю его из терминала. Я использую QT 4.
Проблема наиболее вероятна, что, в то время как Ваши функции загрузки работают, Ваше приложение не может ответить на события - управление не возвращается к основному циклу.
я думаю, что самый простой механизм должен сделать загрузки в отдельных потоках и использовать механизм сигналов и слотов QT для обновления индикаторов выполнения (потоки не могут взаимодействовать непосредственно с пользовательским интерфейсом).
кроме того, вместо вводных файлов для выписывания ответа HTTP Вы могли бы найти более эффективным использовать функцию как urllib.urlretrieve для записи файлов непосредственно.
Это кажется, что окно не уничтожается. Действительно ли это - главное окно Вашего приложения или какое-то диалоговое окно?
, Если это - диалоговое окно, удостоверьтесь, что после вызова объекта окна, следующей строки, или после того, как возвращаемое значение для окна захватывается, Вы звоните "window_object.destroy ()".
, Если бы это - Ваше главное окно, Вы, возможно, хотели бы изменить метод обратного вызова для X кнопок с чем-то для уничтожения окна, возможно, self.destroy ()?