from PyQt5 import QtCore, QtGui, QtWidgets import sys class mainWindow(object): def setupUI(self, mainWin): # 配置主界面 mainWin.setObjectName("mainWin") mainWin.setWindowTitle("mainWin") mainWin.resize(1016, 622) # 创建centralwidget self.centralwidget = QtWidgets.QWidget(mainWin) self.centralwidget.setObjectName("centralwidget") mainWin.setCentralWidget(self.centralwidget) self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") # 创建Tree控件 self.gridCentralwidget = QtWidgets.QGridLayout() self.gridCentralwidget.setHorizontalSpacing(7) self.gridCentralwidget.setObjectName("gridCentralwidget") self.treeWidget = QtWidgets.QTreeWidget(self.centralwidget) self.treeWidget.setMinimumSize(QtCore.QSize(178, 0)) self.treeWidget.setMaximumSize(QtCore.QSize(178, 16777215)) self.treeWidget.setObjectName("treeWidget") item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) item_1 = QtWidgets.QTreeWidgetItem(item_0) item_1 = QtWidgets.QTreeWidgetItem(item_0) item_1 = QtWidgets.QTreeWidgetItem(item_0) self.treeWidget.headerItem().setText(0, "PDM") self.treeWidget.setSortingEnabled(False) self.treeWidget.topLevelItem(0).setText(0, "编号管理") self.treeWidget.topLevelItem(0).child(0).setText(0, "总装图号") self.treeWidget.topLevelItem(0).child(1).setText(0, "部件图号") self.treeWidget.topLevelItem(0).child(2).setText(0, "零件图号") self.gridCentralwidget.addWidget(self.treeWidget, 0, 0, 1, 1) # 创建MDI区域 self.mdiArea = QtWidgets.QMdiArea(self.centralwidget) self.mdiArea.setObjectName("mdiArea") self.gridCentralwidget.addWidget(self.mdiArea, 0, 1, 1, 1) self.horizontalLayout.addLayout(self.gridCentralwidget) # 创建菜单栏 self.menubar = QtWidgets.QMenuBar(mainWin) self.menubar.setGeometry(QtCore.QRect(0, 0, 1016, 26)) self.menubar.setObjectName("menubar") self.menu = QtWidgets.QMenu(self.menubar) self.menu.setObjectName("menu") self.menu.setTitle("文件") mainWin.setMenuBar(self.menubar) # 创建状态栏 self.statusbar = QtWidgets.QStatusBar(mainWin) self.statusbar.setObjectName("statusbar") mainWin.setStatusBar(self.statusbar) self.menubar.addAction(self.menu.menuAction()) class assWindow(object): def setupUI(self, assWin): assWin.setObjectName("assWin") assWin.setWindowTitle("assWin") self.hlayoutassWin = QtWidgets.QHBoxLayout(assWin) self.hlayoutassWin.setObjectName("hlayoutassWin") self.gridassWin = QtWidgets.QGridLayout() self.gridassWin.setHorizontalSpacing(7) self.gridassWin.setObjectName("gridassWin") self.labAssDranum = QtWidgets.QLabel(assWin) self.labAssDranum.setText("总装图号") self.gridassWin.addWidget(self.labAssDranum, 0, 0) self.cboxAssDranum = QtWidgets.QComboBox(assWin) self.gridassWin.addWidget(self.cboxAssDranum, 0, 1) self.hlayoutassWin.addLayout(self.gridassWin) class comWindow(object): def setupUI(self, comWin): comWin.setObjectName("comWin") comWin.setWindowTitle("comWin") self.hlayoutcomWin = QtWidgets.QHBoxLayout(comWin) self.hlayoutcomWin.setObjectName("hlayoutcomWin") self.gridcomWin = QtWidgets.QGridLayout() self.gridcomWin.setHorizontalSpacing(7) self.gridcomWin.setObjectName("gridcomWin") self.labComDranum = QtWidgets.QLabel(comWin) self.labComDranum.setText("部件图号") self.gridcomWin.addWidget(self.labComDranum, 0, 0) self.cboxComDraname = QtWidgets.QLineEdit(comWin) self.gridcomWin.addWidget(self.cboxComDraname, 0, 1) self.hlayoutcomWin.addLayout(self.gridcomWin) # 树节点获取 def onClicked(): item = MainWinui.treeWidget.currentItem() print('Key=%s' % (item.text(0))) if item.text(0) == '总装图号': Assnum() elif item.text(0) == '部件图号': Comnum() # elif item.text(0) == '编号管理': # addsub() else: print('返回主界面') def Assnum(): MainWinui.mdiArea.closeActiveSubWindow() AssSubwin.show() def Comnum(): MainWinui.mdiArea.closeActiveSubWindow() ComSubwin.show() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) # 加载主窗口并显示 MainWin = QtWidgets.QMainWindow() MainWinui = mainWindow() MainWinui.setupUI(MainWin) MainWin.show() # 加载子窗口assWindow AssWin = QtWidgets.QWidget() AssWinui = assWindow() AssWinui.setupUI(AssWin) AssSubwin = QtWidgets.QMdiSubWindow() AssSubwin.setWidget(AssWin) # 加载子窗口comWindow ComWin = QtWidgets.QWidget() ComWinui = comWindow() ComWinui.setupUI(ComWin) ComSubwin = QtWidgets.QMdiSubWindow() ComSubwin.setWidget(ComWin) # 将子窗口添加在MDI区域 MainWinui.mdiArea.addSubWindow(AssSubwin) MainWinui.mdiArea.addSubWindow(ComSubwin) # 获取树节点点击信号 MainWinui.treeWidget.clicked.connect(onClicked) sys.exit(app.exec())