diff --git a/winehelper_gui.py b/winehelper_gui.py index 9962e76..174fb84 100644 --- a/winehelper_gui.py +++ b/winehelper_gui.py @@ -368,30 +368,25 @@ class DependencyManager: def dialog_close_handler(event): """Обрабатывает закрытие окна во время установки зависимостей.""" if process.state() == QProcess.Running: - msg_box = QMessageBox(dialog) - msg_box.setMinimumWidth(900) - msg_box.setIcon(QMessageBox.Question) - msg_box.setWindowTitle("Прервать установку?") - msg_box.setText( - "

Установка зависимостей еще не завершена.

" - "

Вы действительно хотите прервать процесс?

" - "

Это закроет только окно программы.
" - "Процесс установки зависимостей будет продолжен.

" + # QMessageBox без кнопок может некорректно обрабатывать закрытие. + # Используем простой QDialog для надежности. + info_dialog = QDialog(dialog) + info_dialog.setWindowTitle("Идет установка") + info_dialog.setModal(True) + info_dialog.setFixedSize(450, 150) + + layout = QVBoxLayout(info_dialog) + label = QLabel( + "

Установка зависимостей еще не завершена.

" + "

Пожалуйста, дождитесь окончания процесса.

" + "

Закрыть основное окно можно будет после завершения установки.

" ) + label.setTextFormat(Qt.RichText) + label.setAlignment(Qt.AlignCenter) + layout.addWidget(label) - yes_button = msg_box.addButton("Да, прервать", QMessageBox.YesRole) - no_button = msg_box.addButton("Нет", QMessageBox.NoRole) - msg_box.setDefaultButton(no_button) - - msg_box.exec_() - - if msg_box.clickedButton() == yes_button: - process.readyRead.disconnect() - process.finished.disconnect() - process.terminate() - event.accept() - else: - event.ignore() + info_dialog.exec_() + event.ignore() else: event.accept()