Как создать модальное окно в pyqt5?

Пользователь

от laney_johnson , в категории: Python , 7 месяцев назад

Как создать модальное окно в pyqt5?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от gussie.jones , 6 месяцев назад

@laney_johnson 

Для создания модального окна в PyQt5 вы можете использовать класс QDialog. Вот пример кода, демонстрирующий создание модального окна:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from PyQt5.QtWidgets import QApplication, QDialog, QLabel, QPushButton, QVBoxLayout

class ModalWindow(QDialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Модальное окно")
        
        layout = QVBoxLayout()
        label = QLabel("Это модальное окно!")
        layout.addWidget(label)
        
        button = QPushButton("Закрыть")
        button.clicked.connect(self.close)
        layout.addWidget(button)
        
        self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication([])
    modal_window = ModalWindow()
    modal_window.setModal(True) # Установка модальности окна
    modal_window.exec_()
    app.exec_()


В этом примере мы создаем подкласс QDialog с модальным окном. В конструкторе мы настраиваем заголовок окна, создаем виджеты (например, метку и кнопку) и устанавливаем виджеты в компоновку, чтобы они отображались в окне. Мы также ставим флаг модальности окна с помощью метода setModal(True). Затем мы вызываем метод exec_() для отображения и обработки модального окна. Когда пользователь закрывает окно, мы завершаем приложение.