Взаимодействие двух скриптов pyqt
возникла проблема, делаю приложение с поиском фильмов на pyton. И в нем создаю несколько GroupBox с виджетами, которые включаю и выключаю через .hide(), .show() по необходимости.
Например: Есть условный контейнер Favourites, содержащий информацию о понравившихся пользователю фильмах. Он включается, когда человек нажимает на кнопку "Понравившиеся" в главном меню.
Функция выглядит примерно так
def go_to_favourites(self):
/// Какой-то код ///
self.ThirdScreen.show()
Где ThirdScreen -- GroupBox, в котором находится вся инфа о понравившихся фильмах
Всё было бы хорошо, но столкнулся с проблемой: есть пока всего три таких GroupBox (главный экран, понравившиеся и сам процесс подбора фильма), и всё это счастье определено в одном классе и занимает строк 600 кода
Сейчас понадобилось создать ещё одну сцену (GroupBox), где пользователь сможет находить фильмы по названию. Я решил это сделать в отдельном классе, в отдельном скрипте FilmByName.py.
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5 import QtCore
class ByName(QMainWindow):
def __init__(self):
super().__init__()
self.central_widget = None
def setupUI(self):
self.setMaximumSize(470, 780)
self.setMinimumSize(470, 780)
if self.central_widget is None:
print('Error, line 18, FilmByName')
self.FourthScreen = QGroupBox(self.central_widget)
self.FourthScreen.setGeometry(QtCore.QRect(0, 0, 470, 780))
self.InputName = QLineEdit(self.FourthScreen)
self.InputName.setGeometry(QtCore.QRect(80, 180, 240, 30))
font = QFont()
font.setPointSize(12)
self.InputName.setFont(font)
self.SubmitButton = QPushButton(self.FourthScreen)
self.SubmitButton.setGeometry(QtCore.QRect(340, 180, 60, 30))
self.SubmitButton.setFont(font)
self.SubmitButton.setText('Поиск')
self.setCentralWidget(self.central_widget)
И, собственно сама проблема: Есть скрипт Main.py, в нем есть класс
class Ui_MainWindow(QMainWindow):
В этом классе есть GroupBox, а в нём есть кнопка, при нажатии на которую вызывается функция Test():
def test(self):
import FilmByName
self.bn = FilmByName.ByName()
self.bn.central_widget = self.centralwidget
self.bn.setupUI()
self.bn.show()
И теперь при нажатии на кнопку появляется ещё одно окно, в котором к тому же ничего нет:
Подскажите, пожалуйста, как это пофиксить (сделать так, чтобы виджеты из файла FilmByName отображались как новый слой в главном окне (без создания нового))
p.s. Посоветуйте пж хорошей литературы по pyqt5, и годных туториалов