簡體   English   中英

windows PyQt設計器之間切換

[英]Switching between windows PyQt designer

我一直在嘗試在 PyQt5 中開發軟件。

我有 3 個 windows:1)登錄 2)儀表板 3)約會

現在我可以完美地從登錄 -> 儀表板 -> 約會中正確導航。 但是,當我按下約會返回按鈕時,它不會返回到儀表板。

但是,如果我從儀表板->約會中 go,則按鈕可以工作 1 次。

我已經從代碼中刪除了不相關的行,以使分析更簡單。

登錄 window class:

class Ui_MainWindow(object):

    def setupUi(self, MainWindow):
        self.MainWindow = MainWindow

    def retranslateUi(self, MainWindow):
        self.pushButton.clicked.connect(self.next)
 
    def next(self):
        ui = Ui_MainWindow2()
        ui.setupUi(self.MainWindow)
        self.MainWindow.show()

儀表板 window class:

class Ui_MainWindow2(object):

    def setupUi(self, MainWindow):
        self.MainWindow = MainWindow

    def retranslateUi(self, MainWindow):
        self.pushButton.clicked.connect(self.next)
 
    def next(self):
        ui = Ui_MainWindow3()
        ui.setupUi(self.MainWindow)
        self.MainWindow.show()

預約 window class:

class Ui_MainWindow3(object):

    def setupUi(self, MainWindow):
        self.MainWindow = MainWindow

    def retranslateUi(self, MainWindow):
        self.pushButton.clicked.connect(self.back)
 
    def back(self):
        ui = Ui_MainWindow2()
        ui.setupUi(self.MainWindow)
        self.MainWindow.show()

應用程序從文件 login.py 開始,該文件具有:

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

向前導航總是有效,向后導航總是失敗......

任何幫助或建議都將非常受歡迎......

原來我寫的下一個或后面的 function 與應該寫的略有不同。 next 和 back 函數應該是這樣的:

def next(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = Ui_MainWindow2()
        self.ui.setupUi(self.window)
        self.oldWindow.hide()
        self.window.show()

其中 self.oldWindow 是對包含 function 的 class 的原始 window 的引用。 背面 function 也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM