Прежде всего, классы, которые предлагает Qt Designer, не являются виджетами, и рекомендуется, чтобы при изменении .ui при перекомпиляции вы потеряли модификации логики.Поэтому для двух предыдущих аргументов я рекомендую вам восстановить оба файла.
ui_firstwindow.py
class ui_Firstwindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(622, 471)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(210, 140, 191, 41))
self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.nextWindow)
ui_secondwindow.py
class ui_Secondwindow(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(1200, 650)
Dialog.setMinimumSize(QtCore.QSize(552, 0))
self.pushButton_2 = QtWidgets.QPushButton(Dialog)
self.pushButton_2.setGeometry(QtCore.QRect(480, 240, 70, 31))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_2.clicked.connect(self.previouswindow)
Ваша проблема в том, что для отображения окна вам необходим доступ к объекту окна, но в вашем случае, если вы хотите сделать это в нескольких файлах, у вас могут возникнуть проблемы с циклическим импортом, неопределенными переменными и т. Д. Правильная вещьзаключается в том, что все окна имеют одинаковую область видимости.
Затем мы создадим файл main.py, в котором мы будем реализовывать классы, реализующие виджеты, используя предыдущий дизайн.Мы создаем класс, в котором будут создаваться окна, и будем связывать сигналы с нажатой кнопкой мыши с методом show()
другого окна.В каждом классе сигнал нажатия кнопки связан с методом hide()
окна.
from PyQt5 import QtWidgets
from ui_firstwindow import ui_Firstwindow
from ui_secondwindow import ui_Secondwindow
class Firstwindow(QtWidgets.QMainWindow, ui_Firstwindow):
def __init__(self, parent=None):
super(Firstwindow, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(self.hide)
class Secondwindow(QtWidgets.QDialog, ui_Secondwindow):
def __init__(self, parent=None):
super(Secondwindow, self).__init__(parent)
self.setupUi(self)
self.pushButton_2.clicked.connect(self.hide)
class Manager:
def __init__(self):
self.first = Firstwindow()
self.second = Secondwindow()
self.first.pushButton.clicked.connect(self.second.show)
self.second.pushButton_2.clicked.connect(self.first.show)
self.first.show()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
manager = Manager()
sys.exit(app.exec_())