@KerroViT

Как открыть новое окно по клику на пункт в menuBar?

Сделал 2 окна в Qt Designer и конвертировал их в классы Python (main_window и about_window) с помощью pyuic5.
Создал в папке с данными классами файл main.py
import sys
from PyQt5 import QtWidgets
import main_window

class Application(QtWidgets.QMainWindow, main_window.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

def main():
    app = QtWidgets.QApplication(sys.argv)
    window = Application()
    window.show()
    app.exec_()

if __name__ == '__main__':
    main()

В чем вопрос: как вызвать окно about_window по клику на пункт menuBar в main_window?
  • Вопрос задан
  • 696 просмотров
Решения вопроса 2
1na1
@1na1
Hello, world!
В коде main_window необходимо присоединить сигнал menuBar.clicked() к методу отображения окна about_window. Метод отображения - это about_window.exec_().

PS: Не забудь, что about_window необходимо импортировать в main_window командой import

Приблизительно это должно выглядеть так:

# Код окна main_window
#
import about_window  # Импортируем окно About
...
...
# Конструктор main_window
... 
...
self.menuBar.clicked.connect(self.show_about_window)  # Всякий раз при клике на menuBar выполнять self.show_about_window
...
...
# Тело main_window
def show_about_window(self):  # Выполняется всякий раз при клике на menuBar 
    about = about_window()  # Создать окно About
    about.exec_()  # Показать окно About
Ответ написан
@KerroViT Автор вопроса
Решение проблемы нашлось здесь: Как создать дочернее окно в pyqt5?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы