窗口跳转思路
在各个窗口类方法实例化需要跳转的窗口类,再调用 .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 控件可以相互跳转