Найти в Дзене
ФинPython

Подключение дочерней формы PyQt

В этой статье вы узнайте как заставить кнопку на форме работать (подключить к кнопке функционал) и открыть другую форму из первоначальной (стартовой) формы. У нас уже есть класс "AddWindow" для открытия стартовой формы: from PyQt5 import QtWidgets
import sys
import formOne
class AddWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = formOne.Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = AddWindow()
window.showMaximized()
sys.exit(app.exec_()) Подробно об этом классе написано здесь. Добавим перед классом "AddWindow" ещё один класс - "FormTwo" для открытия другой формы: class FormTwo(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.form1 = formTwo.Ui_MainWindow()
self.form1.setupUi(self) Дальше их как-то надо связать между собой. Для этого: В классе "AddWindow" после строки "self.ui.setup

В этой статье вы узнайте как заставить кнопку на форме работать (подключить к кнопке функционал) и открыть другую форму из первоначальной (стартовой) формы.

У нас уже есть класс "AddWindow" для открытия стартовой формы:

from PyQt5 import QtWidgets
import sys
import formOne


class AddWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = formOne.Ui_MainWindow()
self.ui.setupUi(self)


if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = AddWindow()
window.showMaximized()
sys.exit(app.exec_())

Подробно об этом классе написано здесь.

Добавим перед классом "AddWindow" ещё один класс - "FormTwo" для открытия другой формы:

class FormTwo(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.form1 = formTwo.Ui_MainWindow()
self.form1.setupUi(self)

Дальше их как-то надо связать между собой. Для этого:

  • в программе Qt Designer добавим кнопку в стартовую форму
  • преобразуем код формы снова в формат py.
  • импортируем вторую форму в наш проект (import formTwo)

В классе "AddWindow" после строки "self.ui.setupUi(self)" добавляем код для обработки сигнала кнопки:

self.ui.pushButton.clicked.connect(self.open_Two)

В этом коде сигнал кнопки обрабатывает действие "open_Two". Этого действия у нас ещё нету. Действие "open_Two" создаем в виде функции в классе "AddWindow" после строки обработки сигнала кнопки.

def open_Two(self):
self.f2 = FormTwo()
self.f2.show()

В этой функции f2 является переменной и её можно назвать как вам удобно.

Функция "open_Two" подключает наш второй класс "FormTwo()" и открывает вторую форму.