1.使用Qt Designer设计三个窗口
注意:在主窗口中需要添加一个girdLayout
2.创建**.py
from PyQt5.QtWidgets import QMainWindow, QApplication from main import Ui_Main from show import Ui_Show from new import Ui_New import sys class Main(QMainWindow,Ui_Main): def __init__(self): super(Main,self).__init__() self.setupUi(self) self.child1 = Show() self.child2 = New() self.action_2.triggered.connect(self.New) self.action.triggered.connect(self.Show) def Show(self): self.gridLayout.addWidget(self.child1)#将窗口放入girdLayout中 self.child1.show()#打开子窗口1 def New(self): self.gridLayout_2.addWidget(self.child2) self.child2.show() class New(QMainWindow,Ui_New): def __init__(self): super(New,self).__init__() self.setupUi(self) self.pushButton.clicked.connect(self.Close) def Close(self): self.close() class Show(QMainWindow,Ui_Show): def __init__(self): super(Show,self).__init__() self.setupUi(self) if __name__=='__main__': app = QApplication(sys.argv) Main = Main() Show = Show() New = New() Main.show() sys.exit(app.exec_())
3.在主窗口里有两个选项(“初始”和“新建”)与两个子窗口关联
4.“初始”打开
5.“新建”打开
###############################################
小技巧
发现出现了两个底边那个东西
在由窗口文件生成的.py文件中找到如下代码
self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar)
或者在Qt Designer设计时找到
删掉任意一个就OK了