Pyqt 中的下一页和上一页问题

Issue in Pyqt with next and previous Pages

所以我目前正在做一个小项目,但我遇到了一个问题,我尝试过的所有方法都没有奏效。我有 2 个文件: 第 1 页测试:

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QPushButton, QWidget, QLabel
import sys

from page2test import Page2

class Page1(QWidget):
    def __init__(self):
        super(Page1, self).__init__()
        self.setWindowTitle("Page 1")

        label1 = QLabel(self)
        label1.setText("\n PAGE 1")

        self.btn_inMyApp = QPushButton ('Next page', self)
        self.btn_inMyApp.setGeometry(1500,800,275,125)
        self.btn_inMyApp.clicked.connect(self.closePage1_OpenPage2)
        self.show()

    def closePage1_OpenPage2(self):
        self.Open = Page2()
        self.Open.showMaximized()
        self.close()

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = Page1()
    window.showMaximized()
    sys.exit(app.exec_())

和 page2test :


from PyQt5.QtWidgets import QPushButton, QWidget, QLabel

from Page1test import Page1

class Page2(QWidget):
    def __init__(self):
        super(Page2, self).__init__()
        self.setWindowTitle("Test window principale")

        label1 = QLabel(self)
        label1.setText("\n Page2")

        self.btn_inMyApp = QPushButton ('previous Page', self)
        self.btn_inMyApp.setGeometry(1500,800,275,125)
        self.btn_inMyApp.clicked.connect(self.closePage2_OpenPage1)
        self.show()

    def closePage2_OpenPage1(self):
        self.Open = Page1()
        self.Open.showMaximized()
        self.close()

我 运行 Page1test 的代码:空 window 只有一个 Qpushbutton“下一页”,目标:我们单击它并打开第 2 页(并关闭第 1 页)。而且,当我们在第 2 页时,我们有一个带有“上一页”的 Qpushbutton,当我们单击它时,它会打开第 1 页,然后关闭第 2 页。就像一个循环。 但是,当我 运行 代码时,它 returns 一个错误: 无法从部分初始化的模块 'page2test' 导入名称 'Page2'(很可能是由于循环导入)

而且我不知道如何修复它... 如果有人有想法,那将非常有帮助。

所以,我终于找到了解决方案,最终并没有那么困难。在这里(如果它可以帮助某人):

我没有制作 2 个文件,而是只制作了 1 个文件。这是代码:

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QPushButton, QWidget, QLabel, QMainWindow
import sys


class MyApp(QWidget):
    def __init__(self):
        super(MyApp, self).__init__()
        self.setWindowTitle("Page 1")

        label1 = QLabel(self)
        label1.setText("\n PAGE 1")

        self.btn_inMyApp = QPushButton ('Page suivante', self)
        self.btn_inMyApp.setGeometry(1500,800,275,125)
        self.btn_inMyApp.clicked.connect(self.closePage1_OpenPage2)
        self.show()

    def btn1_onClicked(self):
        pass

    def closePage1_OpenPage2(self):
        self.Open = NewApp()
        self.Open.showMaximized()
        self.close()


class NewApp(QMainWindow):
    def __init__(self):
        super(NewApp, self).__init__()
        self.setWindowTitle("Test window principale")

        label1 = QLabel(self)
        label1.setText("\n Page2")

        self.btn_inMyApp = QPushButton ('previous Page', self)
        self.btn_inMyApp.setGeometry(1500,800,275,125)
        self.btn_inMyApp.clicked.connect(self.closePage2_OpenPage1)
        self.show()

    def closePage2_OpenPage1(self):
        self.Open = MyApp()
        self.Open.showMaximized()
        self.close()


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    window.showMaximized()
    sys.exit(app.exec_())
```