devel #49
@@ -368,29 +368,24 @@ class DependencyManager:
|
|||||||
def dialog_close_handler(event):
|
def dialog_close_handler(event):
|
||||||
"""Обрабатывает закрытие окна во время установки зависимостей."""
|
"""Обрабатывает закрытие окна во время установки зависимостей."""
|
||||||
if process.state() == QProcess.Running:
|
if process.state() == QProcess.Running:
|
||||||
msg_box = QMessageBox(dialog)
|
# QMessageBox без кнопок может некорректно обрабатывать закрытие.
|
||||||
msg_box.setMinimumWidth(900)
|
# Используем простой QDialog для надежности.
|
||||||
msg_box.setIcon(QMessageBox.Question)
|
info_dialog = QDialog(dialog)
|
||||||
msg_box.setWindowTitle("Прервать установку?")
|
info_dialog.setWindowTitle("Идет установка")
|
||||||
msg_box.setText(
|
info_dialog.setModal(True)
|
||||||
"<p style='white-space: pre;'>Установка зависимостей еще не завершена.</p>"
|
info_dialog.setFixedSize(450, 150)
|
||||||
"<p style='white-space: pre;'>Вы действительно хотите прервать процесс?</p>"
|
|
||||||
"<p style='white-space: pre;'>Это закроет только окно программы.<br>"
|
layout = QVBoxLayout(info_dialog)
|
||||||
"Процесс установки зависимостей будет продолжен.<p>"
|
label = QLabel(
|
||||||
|
"<h3>Установка зависимостей еще не завершена.</h3>"
|
||||||
|
"<p>Пожалуйста, дождитесь окончания процесса.</p>"
|
||||||
|
"<p>Закрыть основное окно можно будет после завершения установки.</p>"
|
||||||
)
|
)
|
||||||
|
label.setTextFormat(Qt.RichText)
|
||||||
|
label.setAlignment(Qt.AlignCenter)
|
||||||
|
layout.addWidget(label)
|
||||||
|
|
||||||
yes_button = msg_box.addButton("Да, прервать", QMessageBox.YesRole)
|
info_dialog.exec_()
|
||||||
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()
|
event.ignore()
|
||||||
else:
|
else:
|
||||||
event.accept()
|
event.accept()
|
||||||
|
Reference in New Issue
Block a user