PyQt5 多窗口跳转

窗口跳转思路

在各个窗口类方法实例化需要跳转的窗口类,再调用 .show() 方法展示新窗口即可。

示例代码

class mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
    """ 开始窗口: 连接窗口 """
    def __init__(self):
        super(mywindow, self).__init__()
        self.setupUi(self)
        self.m_ui = MainInterface()
        self.success = False

    # 跳转主界面
    def COMJumpMainInterface(self):
        self.hide()
        if self.success:
            self.m_ui.show()
        else:
            QMessageBox.warning(self, "test", "test return")
            self.show()

    def TCPJumpMainInterface(self):
        self.hide()
        self.success = True
        self.m_ui.show()

        # self.setWindowFlags(Qt.SubWindow)
        # self.Write_tableWidget.setItem(0, 2, QtWidgets.QTableWidgetItem(str(100)))


class MainInterface(QtWidgets.QWidget, Ui_Form):
    """  主界面: 展示系统各个模块 """
    def __init__(self):
        super(MainInterface, self).__init__()
        self.setupUi(self)
        self.ui = ''

    def return_main(self):
        self.close()
        self.ui = mywindow()
        self.ui.show()

    def showAddInterface(self):
        self.close()
        self.ui = AddOrDeleteInterface()
        self.ui.show()

    def showSYSTempInterface(self):
        self.close()
        self.ui = SYSTempInterface()
        self.ui.show()


class AddOrDeleteInterface(QtWidgets.QWidget, Ui_Form_Add_delete):
    """ 子模块:添加/删除接口 """
    def __init__(self):
        super(AddOrDeleteInterface, self).__init__()
        self.setupUi(self)
        self.ui = ''

    def return_main(self):
        self.close()
        self.ui = MainInterface()
        self.ui.show()


class SYSTempInterface(QtWidgets.QWidget, Ui_sysTemp):
    """  子模块:系统参数模块 """
    def __init__(self):
        super(SYSTempInterface, self).__init__()
        self.setupUi(self)
        self.ui = ''
        self.center()

    def center(self):
        screen = QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) / 2,
                  (screen.height() - size.height()) / 2)

    def return_main(self):
        self.close()
        self.ui = MainInterface()
        self.ui.show()


if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)
    ui = mywindow()
    ui.show()

备注

这里代码仅供参考思路、不可运行,没有环境
QMainWindow 控件之间的多窗口没有测试,网上说不行
QWidget 控件之间的多窗口可以跳转
QMainWindow 控件和 QWidget 控件可以相互跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值