Решение задачи: как вызвать окно из другого окна с помощью PyQt5 в Python

PyQt5 - это мощный фреймворк для создания графических приложений на языке Python. Одной из задач, которую можно решить с помощью PyQt5, является вызов окна из другого окна. В этой статье мы рассмотрим, как это сделать.

Шаг 1: Создание первого окна

Первым шагом является создание первого окна. Для этого мы будем использовать класс QMainWindow.

from PyQt5.QtWidgets import QApplication, QMainWindow

app = QApplication([])
window = QMainWindow()
window.show()
app.exec_()

Код выше создает новое приложение QApplication, создает главное окно QMainWindow и отображает его на экране с помощью метода show(). Цикл app.exec_() ожидает закрытия окна, чтобы завершить работу приложения.

Шаг 2: Создание второго окна

Для создания второго окна нам нужно использовать класс QDialog.

from PyQt5.QtWidgets import QDialog

class SecondWindow(QDialog):
    def __init__(self):
        super().__init__()

В коде выше мы создаем класс SecondWindow, который наследуется от QDialog. Метод __init__ используется для инициализации класса.

Шаг 3: Добавление виджетов во второе окно

Чтобы добавить виджеты во второе окно, мы будем использовать метод setLayout().

from PyQt5.QtWidgets import QVBoxLayout, QLabel

class SecondWindow(QDialog):
    def __init__(self):
        super().__init__()

        layout = QVBoxLayout()
        label = QLabel("This is the second window")
        layout.addWidget(label)

        self.setLayout(layout)

В коде выше мы создаем вертикальный макет QVBoxLayout, добавляем метку QLabel и устанавливаем макет во второе окно с помощью метода setLayout().

Шаг 4: Открытие второго окна из первого окна

Чтобы открыть второе окно из первого окна, нам нужно добавить кнопку в первое окно и привязать ее к функции, которая открывает второе окно.

from PyQt5.QtWidgets import QPushButton

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        button = QPushButton("Open second window")
        button.clicked.connect(self.open_second_window)
        self.setCentralWidget(button)

    def open_second_window(self):
        self.second_window = SecondWindow()
        self.second_window.show()

В коде выше мы создаем кнопку QPushButton, привязываем ее к функции open_second_window(), которая создает новый экземпляр SecondWindow и отображает его на экране с помощью метода show().

Шаг 5: Запуск приложения

Чтобы запустить приложение, мы создаем экземпляр QApplication и отображаем главное окно с помощью метода show().

app = QApplication([])
main_window = MainWindow()
main_window.show()
app.exec_()

Заключение

Мы рассмотрели, как вызвать окно из другого окна с помощью PyQt5 в Python. Мы создали первое окно с одной кнопкой, при нажатии на которую открывается второе окно. Мы использовали классы QMainWindow и QDialog, а также виджеты QPushButton, QVBoxLayout и QLabel. Надеемся, эта статья поможет вам создать свои собственные графические приложения на Python с помощью PyQt5.

Смотри также: