PyQt5 Открыть форму в другой форме которые созданые в QT Design

312 просмотра
0
0 Комментариев

Создал две формы в Qt Design, конвертировал в .py файл.
Как теперь при нажатии клавиши в первой форме вызвать другую?


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

По сути, у нас есть два виджета, пусть будут: MainWidget и Dialog. И нам нужно просто создать и показать Dialog.

Если виджеты находятся в разных модулях (файлах .py), то либо их модули импортируются и через модули к виджетам обращаются, либо виджеты импортируются из модулей.

Покажу пример создания виджетов и показа одного виджета из другого:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
 
 
class MainWidget(QWidget):
    def __init__(self):
        super().__init__()
 
        # Создадим виджет и сохраним ссылку на него
        self.dialog = Dialog()
        self.dialog.resize(200, 200)
 
        self.button_show = QPushButton('Show')
        self.button_show.clicked.connect(self.show_dialog)
 
        self.button_hide = QPushButton('Hide')
        self.button_hide.clicked.connect(self.hide_dialog)
 
        layout = QVBoxLayout()
        layout.addWidget(self.button_show)
        layout.addWidget(self.button_hide)
        layout.addStretch()
 
        self.setLayout(layout)
 
    def show_dialog(self):
        self.dialog.show()
 
    def hide_dialog(self):
        self.dialog.hide()
 
 
class Dialog(QWidget):
    def __init__(self):
        super().__init__()
 
 
if __name__ == '__main__':
    app = QApplication([])
 
    w = MainWidget()
    w.resize(200, 100)
    w.show()
 
    app.exec()

Результат:

введите сюда описание изображения

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up