pyqt5实现多界面跳转--走坑史(不用第三个模块操作!)

最近使用pyqt5做GUI界面,拖拽控件可以将界面设计得很漂亮,但是不会多界面之间的跳转,比如点击一个button就进入第二个界面,第一个界面关闭,关闭第二个界面又进入主界面,如果看到这里你心里正想:对!这就是我想知道的!看完这篇博客就会明白如何实现,本博客将介绍上述功能的实现方法以及本人的走坑史~

首先是两个界面的实现,我使用拖拽控件实现的,下面是两个界面截图,分别为主界面和子界面:
在这里插入图片描述

在这里插入图片描述

然后由ui文件转化成的py文件如下:
管理员界面:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class AdminPage(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(455, 525)
        self.horizontalLayout = QtWidgets.QHBoxLayout(Form)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setToolTipDuration(1)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout.setObjectName("verticalLayout")
        self.personal_page = QtWidgets.QPushButton(self.groupBox)
        self.personal_page.setObjectName("personal_page")
        self.verticalLayout.addWidget(self.personal_page)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.supplier = QtWidgets.QPushButton(self.groupBox)
        self.supplier.setObjectName("supplier")
        self.horizontalLayout_2.addWidget(self.supplier)
        self.buyer = QtWidgets.QPushButton(self.groupBox)
        self.buyer.setObjectName("buyer")
        self.horizontalLayout_2.addWidget(self.buyer)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.purchase_info = QtWidgets.QPushButton(self.groupBox)
        self.purchase_info.setObjectName("purchase_info")
        self.horizontalLayout_4.addWidget(self.purchase_info)
        self.funds_info = QtWidgets.QPushButton(self.groupBox)
        self.funds_info.setObjectName("funds_info")
        self.horizontalLayout_4.addWidget(self.funds_info)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.stock_info = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stock_info.sizePolicy().hasHeightForWidth())
        self.stock_info.setSizePolicy(sizePolicy)
        self.stock_info.setObjectName("stock_info")
        self.horizontalLayout_3.addWidget(self.stock_info)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.back = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back.sizePolicy().hasHeightForWidth())
        self.back.setSizePolicy(sizePolicy)
        self.back.setObjectName("back")
        self.horizontalLayout_5.addWidget(self.back)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout.addWidget(self.groupBox)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "admin"))
        self.groupBox.setTitle(_translate("Form", "管理员界面"))
        self.personal_page.setText(_translate("Form", "个人主页"))
        self.supplier.setText(_translate("Form", "管理供应商信息"))
        self.buyer.setText(_translate("Form", "管理进货员"))
        self.purchase_info.setText(_translate("Form", "查看进货信息"))
        self.funds_info.setText(_translate("Form", "查看资金信息"))
        self.stock_info.setText(_translate("Form", "查询库存信息"))
        self.back.setText(_translate("Form", "返回主界面"))

个人主页界面:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class PersonalInfo(object):
    def setupUi(self, Dialog):
        self.dialog = Dialog
        self.dialog.setObjectName("Dialog")
        self.dialog.resize(578, 596)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.dialog)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.dialog)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.name_label = QtWidgets.QLabel(self.groupBox)
        self.name_label.setObjectName("name_label")
        self.horizontalLayout_5.addWidget(self.name_label)
        self.name_line_edit = QtWidgets.QLineEdit(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(9)
        sizePolicy.setHeightForWidth(self.name_line_edit.sizePolicy().hasHeightForWidth())
        self.name_line_edit.setSizePolicy(sizePolicy)
        self.name_line_edit.setObjectName("name_line_edit")
        self.horizontalLayout_5.addWidget(self.name_line_edit)
        self.horizontalLayout_5.setStretch(0, 3)
        self.horizontalLayout_5.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.order_label = QtWidgets.QLabel(self.groupBox)
        self.order_label.setObjectName("order_label")
        self.horizontalLayout_4.addWidget(self.order_label)
        self.order_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.order_line_edit.setObjectName("order_line_edit")
        self.horizontalLayout_4.addWidget(self.order_line_edit)
        self.horizontalLayout_4.setStretch(0, 3)
        self.horizontalLayout_4.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.tele_label = QtWidgets.QLabel(self.groupBox)
        self.tele_label.setObjectName("tele_label")
        self.horizontalLayout_3.addWidget(self.tele_label)
        self.tele_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.tele_line_edit.setObjectName("tele_line_edit")
        self.horizontalLayout_3.addWidget(self.tele_line_edit)
        self.horizontalLayout_3.setStretch(0, 3)
        self.horizontalLayout_3.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.address_label = QtWidgets.QLabel(self.groupBox)
        self.address_label.setObjectName("address_label")
        self.horizontalLayout_2.addWidget(self.address_label)
        self.address_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.address_line_edit.setObjectName("address_line_edit")
        self.horizontalLayout_2.addWidget(self.address_line_edit)
        self.horizontalLayout_2.setStretch(0, 3)
        self.horizontalLayout_2.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.save_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.save_pushButton.sizePolicy().hasHeightForWidth())
        self.save_pushButton.setSizePolicy(sizePolicy)
        self.save_pushButton.setObjectName("save_pushButton")
        self.horizontalLayout_6.addWidget(self.save_pushButton)
        self.back_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back_pushButton.sizePolicy().hasHeightForWidth())
        self.back_pushButton.setSizePolicy(sizePolicy)
        self.back_pushButton.setObjectName("back_pushButton")
        self.horizontalLayout_6.addWidget(self.back_pushButton)
        self.verticalLayout_2.addLayout(self.horizontalLayout_6)
        self.horizontalLayout.addWidget(self.groupBox)

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.dialog)

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.groupBox.setTitle(_translate("Dialog", "个人主页"))
        self.name_label.setToolTip(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:12pt;\">姓名</span></p></body></html>"))
        self.name_label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:14pt;\">姓名</span></p></body></html>"))
        self.order_label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:14pt;\">编号</span></p></body></html>"))
        self.tele_label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:14pt;\">联系方式</span></p></body></html>"))
        self.address_label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:14pt;\">地址</span></p></body></html>"))
        self.save_pushButton.setText(_translate("Dialog", "保存信息"))
        self.back_pushButton.setText(_translate("Dialog", "返回"))
        

这里需要注意的是,如果你所跳转的界面有多个,只能有QWidget界面,不能有多个,其他几个只能使用QDialoge界面,如果说你设计的时候不小心设计的是多个QWidget界面怎么办呢?不用担心,你会发现从ui文件生成的py文件只是一个接口形式的,那么它到时候是什么类型界面只是和你的传入的Form有关。

下面说说我的采坑史:
一开始上网上找很久,发现很多人的实现方式是重新写一个新的脚本,然后用这个新的脚本实现两个界面之间的跳转,至于多个界面因为没有展示,所以我也不知道那种方法是否可行,且不说可行,这个“第三者”总让人感觉有点冗余,所以我希望直接用生成的两个py脚本文件稍作修改,实现跳转,我的第一个版本是这样的:首先在AdminStage类里添加一个__init__()方法:

class AdminPage(object):
    def __init__(self, parent_window=None):
        if parent_window:
            parent_window.destroy()  # 销毁主界面
        self.app = QtWidgets.QApplication(sys.argv)
        widget = QtWidgets.QWidget()
        self.Form = None
        self.setupUi(widget)
        widget.show()
        sys.exit(self.app.exec_())
......

然后再在按钮那里添加一个signal:

self.personal_page.clicked.connect(lambda: self.personal_info(self.Form))

其中self.personal_info()内容如下:

    def personal_info(self):
        obj = PersonalInfo()

然后想当然地在PersonalInfo类里也添加相似的内容:

class PersonalInfo(object):
    def __init__(self, parent_window=None):
        if parent_window:
            parent_window.destroy()  # 销毁主界面
        app = QtWidgets.QApplication(sys.argv)
        widget = QtWidgets.QDialog()  
        self.dialog = None
        self.setupUi(widget)  # 界面是什么类型的只和这里的widget有关
        widget.show()
        sys.exit(app.exec_())
......

运行之后报错:

QCoreApplication::exec: The event loop is already running

后来才弄懂一个程序里只能有一个app,于是乎,我将PersonalInfo类里的app = QtWidgets.QApplication(sys.argv)sys.exit(app.exec_())注释掉,运行,发现还是不行,曾一度有手动敲代码实现界面的冲动…

后来发现一种方法可以实现,将AdminStage类修改如下:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!

import sys
import tkinter as tk
from PyQt5 import QtCore, QtGui, QtWidgets
from PersonalInfo import PersonalInfo
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
import os
from PyQt5.QtCore import pyqtSignal

class AdminPage(object):
    def __init__(self):
        self.app = QtWidgets.QApplication(sys.argv)
        widget = QtWidgets.QWidget()
        self.Form = None
        self.setupUi(widget)
        widget.show()
        sys.exit(self.app.exec_())
        # self.app.exec_()

    def setupUi(self, Form):
        self.Form = Form
        self.Form.setObjectName("Form")
        self.Form.resize(455, 525)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.Form)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.Form)
        self.groupBox.setToolTipDuration(1)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout.setObjectName("verticalLayout")
        self.personal_page = QtWidgets.QPushButton(self.groupBox)
        self.personal_page.setObjectName("personal_page")
        self.verticalLayout.addWidget(self.personal_page)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.supplier = QtWidgets.QPushButton(self.groupBox)
        self.supplier.setObjectName("supplier")
        self.horizontalLayout_2.addWidget(self.supplier)
        self.buyer = QtWidgets.QPushButton(self.groupBox)
        self.buyer.setObjectName("buyer")
        self.horizontalLayout_2.addWidget(self.buyer)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.purchase_info = QtWidgets.QPushButton(self.groupBox)
        self.purchase_info.setObjectName("purchase_info")
        self.horizontalLayout_4.addWidget(self.purchase_info)
        self.funds_info = QtWidgets.QPushButton(self.groupBox)
        self.funds_info.setObjectName("funds_info")
        self.horizontalLayout_4.addWidget(self.funds_info)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.stock_info = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stock_info.sizePolicy().hasHeightForWidth())
        self.stock_info.setSizePolicy(sizePolicy)
        self.stock_info.setObjectName("stock_info")
        self.horizontalLayout_3.addWidget(self.stock_info)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.back = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back.sizePolicy().hasHeightForWidth())
        self.back.setSizePolicy(sizePolicy)
        self.back.setObjectName("back")
        self.horizontalLayout_5.addWidget(self.back)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout.addWidget(self.groupBox)
        # 个人信息
        # self.personal_page.clicked.connect(lambda: self.personal_info(self.Form))
        self.personal_page.clicked.connect(lambda: self.personal_info())

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.Form)
    
    def personal_info(self):       
        self.Form.hide()           
        dialog1 = QtWidgets.QDialog()
        personalPage = PersonalInfo()
        personalPage.setupUi(dialog1)
        dialog1.show()
        dialog1.exec_()
        self.Form.show()

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.Form.setWindowTitle(_translate("self.Form", "admin"))
        self.groupBox.setTitle(_translate("Form", "管理员界面"))
        self.personal_page.setText(_translate("Form", "个人主页"))
        self.supplier.setText(_translate("Form", "管理供应商信息"))
        self.buyer.setText(_translate("Form", "管理进货员"))
        self.purchase_info.setText(_translate("Form", "查看进货信息"))
        self.funds_info.setText(_translate("Form", "查看资金信息"))
        self.stock_info.setText(_translate("Form", "查询库存信息"))
        self.back.setText(_translate("Form", "返回主界面"))


if __name__ == '__main__':
    obj = AdminPage()

特别注意personal_info()函数,其中的self.Form.hide()是实现跳转前将主界面隐藏,如果关闭personalPage界面,主界面进程会触发下面的self.Form.show()会再次显示主界面,所以如果没有self.Form.show()那么关闭PersonPage界面之后直接结束进程。
然后我的PersonalPage界面的代码最后如下:

# -*- coding: utf-8 -*-

# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog


class PersonalInfo(object):
    def __init__(self):
        pass
        # if parent_window:
        #     parent_window.destroy()  # 销毁主界面
        # app = QtWidgets.QApplication(sys.argv)
        # widget = QtWidgets.QDialog()
        # self.PersonalInfo = None
        # self.setupUi(widget)
        # widget.show()
        # sys.exit(app.exec_())

    def setupUi(self, PersonalInfo):
        self.PersonalInfo = PersonalInfo
        self.PersonalInfo.setObjectName("PersonalInfo")
        self.PersonalInfo.resize(550, 564)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.PersonalInfo)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.PersonalInfo)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.name_label = QtWidgets.QLabel(self.groupBox)
        self.name_label.setObjectName("name_label")
        self.horizontalLayout_5.addWidget(self.name_label)
        self.name_line_edit = QtWidgets.QLineEdit(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(9)
        sizePolicy.setHeightForWidth(self.name_line_edit.sizePolicy().hasHeightForWidth())
        self.name_line_edit.setSizePolicy(sizePolicy)
        self.name_line_edit.setObjectName("name_line_edit")
        self.horizontalLayout_5.addWidget(self.name_line_edit)
        self.horizontalLayout_5.setStretch(0, 3)
        self.horizontalLayout_5.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.order_label = QtWidgets.QLabel(self.groupBox)
        self.order_label.setObjectName("order_label")
        self.horizontalLayout_4.addWidget(self.order_label)
        self.order_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.order_line_edit.setObjectName("order_line_edit")
        self.horizontalLayout_4.addWidget(self.order_line_edit)
        self.horizontalLayout_4.setStretch(0, 3)
        self.horizontalLayout_4.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.tele_label = QtWidgets.QLabel(self.groupBox)
        self.tele_label.setObjectName("tele_label")
        self.horizontalLayout_3.addWidget(self.tele_label)
        self.tele_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.tele_line_edit.setObjectName("tele_line_edit")
        self.horizontalLayout_3.addWidget(self.tele_line_edit)
        self.horizontalLayout_3.setStretch(0, 3)
        self.horizontalLayout_3.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.address_label = QtWidgets.QLabel(self.groupBox)
        self.address_label.setObjectName("address_label")
        self.horizontalLayout_2.addWidget(self.address_label)
        self.address_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.address_line_edit.setObjectName("address_line_edit")
        self.horizontalLayout_2.addWidget(self.address_line_edit)
        self.horizontalLayout_2.setStretch(0, 3)
        self.horizontalLayout_2.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.save_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.save_pushButton.sizePolicy().hasHeightForWidth())
        self.save_pushButton.setSizePolicy(sizePolicy)
        self.save_pushButton.setObjectName("save_pushButton")
        self.horizontalLayout_6.addWidget(self.save_pushButton)
        self.back_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back_pushButton.sizePolicy().hasHeightForWidth())
        self.back_pushButton.setSizePolicy(sizePolicy)
        self.back_pushButton.setObjectName("back_pushButton")
        self.horizontalLayout_6.addWidget(self.back_pushButton)
        self.verticalLayout_2.addLayout(self.horizontalLayout_6)
        self.horizontalLayout.addWidget(self.groupBox)

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.PersonalInfo)
    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.PersonalInfo.setWindowTitle(_translate("PersonalInfo", "Form"))
        self.groupBox.setTitle(_translate("PersonalInfo", "个人主页"))
        self.name_label.setToolTip(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:12pt;\">姓名</span></p></body></html>"))
        self.name_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">姓名</span></p></body></html>"))
        self.order_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">编号</span></p></body></html>"))
        self.tele_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">联系方式</span></p></body></html>"))
        self.address_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">地址</span></p></body></html>"))
        self.save_pushButton.setText(_translate("PersonalInfo", "保存信息"))
        self.back_pushButton.setText(_translate("PersonalInfo", "返回"))

仅仅需要在开头加一个__init__()方法即可,然后就可以实现上述的跳转功能了。发现如果不会用的话就会觉得pyqt5麻烦太多了,但是会用了还是非常方便的。

好了,刚刚介绍了两个界面,如果是三个或者更多呢?下面来说说如何实现:

我在上面的例子的基础上,再添加一个文件PersonalInfo2.py,(前面两个文件名好像忘了介绍,不好意思~前面两个文件名分别是:管理员界面.py和PersonalInfo.py,其中前者里面的类是AdminPage(),后者的类是PersonalInfo())这个文件里的类是PersonalInfo()(对,如你所想,我偷偷把子一号类copy了一下),现在实现三个窗口之间的跳转:
在AdminPage类中,基本不动,就将personal_info()函数改成这样:

    def personal_info(self):       
        self.Form.hide()            
        dialog1 = QtWidgets.QDialog()
        personalPage = PersonalInfo()
        personalPage.setupUi(dialog1)
        dialog1.show()
        dialog1.exec_()
        dialog1.show()  # 新增
        dialog1.exec_()  # 新增
        self.Form.show()

对,就新增了两行,然后将两个个人主页界面加序号来标识一下,看左上角:
在这里插入图片描述

下面我实现的功能是:点击【返回】就回到管理员界面,点击【保存信息】就进入第二个个人主页界面,所以我为【保存信息】按钮添加一个signal,然后添加一个槽(函数)来实现功能:
在这里插入图片描述

然后PersonalPage2里边的【返回】按钮仍然能够实现返回功能,试试效果:
在这里插入图片描述

点击个人主页进入个人主页1:
在这里插入图片描述

点击返回我就不演示了,点击【保存信息】进入个人主页2:
在这里插入图片描述

然后点击【返回】,回到了个人主页1:
在这里插入图片描述

再点击【返回】就回到了管理员界面。这是三个嵌套的界面的实现,如果有更多的呢?那就按照这样的规律来改就行了。下面附上这三个.py文件的代码:
管理员界面.py:

# -*- coding: utf-8 -*-

#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!

import sys
import tkinter as tk
from PyQt5 import QtCore, QtGui, QtWidgets
from PersonalInfo import PersonalInfo
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
import os
from PyQt5.QtCore import pyqtSignal, QEventLoop

class AdminPage(object):
    def __init__(self):
        self.app = QtWidgets.QApplication(sys.argv)
        widget = QtWidgets.QWidget()
        self.Form = None
        self.setupUi(widget)
        widget.show()
        sys.exit(self.app.exec_())
        # self.app.exec_()

    def setupUi(self, Form):
        self.Form = Form
        self.Form.setObjectName("Form")
        self.Form.resize(455, 525)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.Form)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.Form)
        self.groupBox.setToolTipDuration(1)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout.setObjectName("verticalLayout")
        self.personal_page = QtWidgets.QPushButton(self.groupBox)
        self.personal_page.setObjectName("personal_page")
        self.verticalLayout.addWidget(self.personal_page)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.supplier = QtWidgets.QPushButton(self.groupBox)
        self.supplier.setObjectName("supplier")
        self.horizontalLayout_2.addWidget(self.supplier)
        self.buyer = QtWidgets.QPushButton(self.groupBox)
        self.buyer.setObjectName("buyer")
        self.horizontalLayout_2.addWidget(self.buyer)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.purchase_info = QtWidgets.QPushButton(self.groupBox)
        self.purchase_info.setObjectName("purchase_info")
        self.horizontalLayout_4.addWidget(self.purchase_info)
        self.funds_info = QtWidgets.QPushButton(self.groupBox)
        self.funds_info.setObjectName("funds_info")
        self.horizontalLayout_4.addWidget(self.funds_info)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.stock_info = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stock_info.sizePolicy().hasHeightForWidth())
        self.stock_info.setSizePolicy(sizePolicy)
        self.stock_info.setObjectName("stock_info")
        self.horizontalLayout_3.addWidget(self.stock_info)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.back = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back.sizePolicy().hasHeightForWidth())
        self.back.setSizePolicy(sizePolicy)
        self.back.setObjectName("back")
        self.horizontalLayout_5.addWidget(self.back)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout.addWidget(self.groupBox)
        # 个人信息
        # self.personal_page.clicked.connect(lambda: self.personal_info(self.Form))
        self.personal_page.clicked.connect(lambda: self.personal_info())

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.Form)
    
    def personal_info(self):       
        self.Form.hide()            
        dialog1 = QtWidgets.QDialog()
        personalPage = PersonalInfo()
        personalPage.setupUi(dialog1)
        dialog1.show()
        dialog1.exec_()
        dialog1.show()
        dialog1.exec_()
        self.Form.show()

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.Form.setWindowTitle(_translate("self.Form", "admin"))
        self.groupBox.setTitle(_translate("Form", "管理员界面"))
        self.personal_page.setText(_translate("Form", "个人主页"))
        self.supplier.setText(_translate("Form", "管理供应商信息"))
        self.buyer.setText(_translate("Form", "管理进货员"))
        self.purchase_info.setText(_translate("Form", "查看进货信息"))
        self.funds_info.setText(_translate("Form", "查看资金信息"))
        self.stock_info.setText(_translate("Form", "查询库存信息"))
        self.back.setText(_translate("Form", "返回主界面"))


if __name__ == '__main__':
    obj = AdminPage()

PersonalInfo.py文件:

# -*- coding: utf-8 -*-

# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
from PersonalInfo2 import PersonalInfo as PersonalInfo2


class PersonalInfo(object):
    def __init__(self):
        pass
        # if parent_window:
        #     parent_window.destroy()  # 销毁主界面
        # app = QtWidgets.QApplication(sys.argv)
        # widget = QtWidgets.QDialog()
        # self.PersonalInfo = None
        # self.setupUi(widget)
        # widget.show()
        # sys.exit(app.exec_())

    def setupUi(self, PersonalInfo):
        self.PersonalInfo = PersonalInfo
        self.PersonalInfo.setObjectName("PersonalInfo")
        self.PersonalInfo.resize(550, 564)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.PersonalInfo)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.PersonalInfo)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.name_label = QtWidgets.QLabel(self.groupBox)
        self.name_label.setObjectName("name_label")
        self.horizontalLayout_5.addWidget(self.name_label)
        self.name_line_edit = QtWidgets.QLineEdit(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(9)
        sizePolicy.setHeightForWidth(self.name_line_edit.sizePolicy().hasHeightForWidth())
        self.name_line_edit.setSizePolicy(sizePolicy)
        self.name_line_edit.setObjectName("name_line_edit")
        self.horizontalLayout_5.addWidget(self.name_line_edit)
        self.horizontalLayout_5.setStretch(0, 3)
        self.horizontalLayout_5.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.order_label = QtWidgets.QLabel(self.groupBox)
        self.order_label.setObjectName("order_label")
        self.horizontalLayout_4.addWidget(self.order_label)
        self.order_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.order_line_edit.setObjectName("order_line_edit")
        self.horizontalLayout_4.addWidget(self.order_line_edit)
        self.horizontalLayout_4.setStretch(0, 3)
        self.horizontalLayout_4.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.tele_label = QtWidgets.QLabel(self.groupBox)
        self.tele_label.setObjectName("tele_label")
        self.horizontalLayout_3.addWidget(self.tele_label)
        self.tele_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.tele_line_edit.setObjectName("tele_line_edit")
        self.horizontalLayout_3.addWidget(self.tele_line_edit)
        self.horizontalLayout_3.setStretch(0, 3)
        self.horizontalLayout_3.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.address_label = QtWidgets.QLabel(self.groupBox)
        self.address_label.setObjectName("address_label")
        self.horizontalLayout_2.addWidget(self.address_label)
        self.address_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.address_line_edit.setObjectName("address_line_edit")
        self.horizontalLayout_2.addWidget(self.address_line_edit)
        self.horizontalLayout_2.setStretch(0, 3)
        self.horizontalLayout_2.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.save_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.save_pushButton.sizePolicy().hasHeightForWidth())
        self.save_pushButton.setSizePolicy(sizePolicy)
        self.save_pushButton.setObjectName("save_pushButton")
        self.horizontalLayout_6.addWidget(self.save_pushButton)
        self.back_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back_pushButton.sizePolicy().hasHeightForWidth())
        self.back_pushButton.setSizePolicy(sizePolicy)
        self.back_pushButton.setObjectName("back_pushButton")
        self.horizontalLayout_6.addWidget(self.back_pushButton)
        self.verticalLayout_2.addLayout(self.horizontalLayout_6)
        self.horizontalLayout.addWidget(self.groupBox)
        # 返回按钮
        self.back_pushButton.clicked.connect(self.PersonalInfo.close)
        # 保存按钮
        self.save_pushButton.clicked.connect(lambda : self.fun())
        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.PersonalInfo)

    def fun(self):
        self.PersonalInfo.hide()
        dialog2 = QtWidgets.QDialog()
        personalPage2 = PersonalInfo2()
        personalPage2.setupUi(dialog2)
        dialog2.show()
        dialog2.exec_()
        # self.PersonalInfo.show()

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.PersonalInfo.setWindowTitle(_translate("PersonalInfo", "Form"))
        self.groupBox.setTitle(_translate("PersonalInfo", "个人主页1"))
        self.name_label.setToolTip(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:12pt;\">姓名</span></p></body></html>"))
        self.name_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">姓名</span></p></body></html>"))
        self.order_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">编号</span></p></body></html>"))
        self.tele_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">联系方式</span></p></body></html>"))
        self.address_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">地址</span></p></body></html>"))
        self.save_pushButton.setText(_translate("PersonalInfo", "保存信息"))
        self.back_pushButton.setText(_translate("PersonalInfo", "返回"))

PersonalInfo2.py文件:

# -*- coding: utf-8 -*-

# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog


class PersonalInfo(object):
    def __init__(self):
        pass
        # if parent_window:
        #     parent_window.destroy()  # 销毁主界面
        # app = QtWidgets.QApplication(sys.argv)
        # widget = QtWidgets.QDialog()
        # self.PersonalInfo = None
        # self.setupUi(widget)
        # widget.show()
        # sys.exit(app.exec_())

    def setupUi(self, PersonalInfo):
        self.PersonalInfo = PersonalInfo
        self.PersonalInfo.setObjectName("PersonalInfo")
        self.PersonalInfo.resize(550, 564)
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.PersonalInfo)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.PersonalInfo)
        self.groupBox.setObjectName("groupBox")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.name_label = QtWidgets.QLabel(self.groupBox)
        self.name_label.setObjectName("name_label")
        self.horizontalLayout_5.addWidget(self.name_label)
        self.name_line_edit = QtWidgets.QLineEdit(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(9)
        sizePolicy.setHeightForWidth(self.name_line_edit.sizePolicy().hasHeightForWidth())
        self.name_line_edit.setSizePolicy(sizePolicy)
        self.name_line_edit.setObjectName("name_line_edit")
        self.horizontalLayout_5.addWidget(self.name_line_edit)
        self.horizontalLayout_5.setStretch(0, 3)
        self.horizontalLayout_5.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.order_label = QtWidgets.QLabel(self.groupBox)
        self.order_label.setObjectName("order_label")
        self.horizontalLayout_4.addWidget(self.order_label)
        self.order_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.order_line_edit.setObjectName("order_line_edit")
        self.horizontalLayout_4.addWidget(self.order_line_edit)
        self.horizontalLayout_4.setStretch(0, 3)
        self.horizontalLayout_4.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.tele_label = QtWidgets.QLabel(self.groupBox)
        self.tele_label.setObjectName("tele_label")
        self.horizontalLayout_3.addWidget(self.tele_label)
        self.tele_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.tele_line_edit.setObjectName("tele_line_edit")
        self.horizontalLayout_3.addWidget(self.tele_line_edit)
        self.horizontalLayout_3.setStretch(0, 3)
        self.horizontalLayout_3.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(110, 10, 110, 10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.address_label = QtWidgets.QLabel(self.groupBox)
        self.address_label.setObjectName("address_label")
        self.horizontalLayout_2.addWidget(self.address_label)
        self.address_line_edit = QtWidgets.QLineEdit(self.groupBox)
        self.address_line_edit.setObjectName("address_line_edit")
        self.horizontalLayout_2.addWidget(self.address_line_edit)
        self.horizontalLayout_2.setStretch(0, 3)
        self.horizontalLayout_2.setStretch(1, 7)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.save_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.save_pushButton.sizePolicy().hasHeightForWidth())
        self.save_pushButton.setSizePolicy(sizePolicy)
        self.save_pushButton.setObjectName("save_pushButton")
        self.horizontalLayout_6.addWidget(self.save_pushButton)
        self.back_pushButton = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.back_pushButton.sizePolicy().hasHeightForWidth())
        self.back_pushButton.setSizePolicy(sizePolicy)
        self.back_pushButton.setObjectName("back_pushButton")
        self.horizontalLayout_6.addWidget(self.back_pushButton)
        self.verticalLayout_2.addLayout(self.horizontalLayout_6)
        self.horizontalLayout.addWidget(self.groupBox)
        # 返回按钮
        self.back_pushButton.clicked.connect(self.PersonalInfo.close)
        
        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self.PersonalInfo)

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.PersonalInfo.setWindowTitle(_translate("PersonalInfo", "Form"))
        self.groupBox.setTitle(_translate("PersonalInfo", "个人主页2"))
        self.name_label.setToolTip(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:12pt;\">姓名</span></p></body></html>"))
        self.name_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">姓名</span></p></body></html>"))
        self.order_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">编号</span></p></body></html>"))
        self.tele_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">联系方式</span></p></body></html>"))
        self.address_label.setText(_translate("PersonalInfo", "<html><head/><body><p><span style=\" font-size:14pt;\">地址</span></p></body></html>"))
        self.save_pushButton.setText(_translate("PersonalInfo", "保存信息"))
        self.back_pushButton.setText(_translate("PersonalInfo", "返回"))

这里说一句,如果我想从个人界面2返回之后直接到管理员界面,而不经过个人界面1该怎么弄呢?
那就将AdminPage类的这两行注释掉就行了:
在这里插入图片描述

好啦,总结完毕~

猜你喜欢

转载自blog.csdn.net/weixin_43141320/article/details/105988107