PyQt5基础学习-QMdiArea(多个子窗口的容纳器) 1. QMdiSubWindow(构造单个子窗口) 2.QMdiArea().addSubWindow(QMdiSubWindow())(在多个子窗口容纳器添加单个) 3.QMdiSubWindow().cascadeSubWindows(设置界面为重叠) 4.QMdiSubWindow().tileSubWindows(设置界面为展开)
添加菜单栏的组件, 通过点击菜单栏的组件按钮来生成新的窗口, 然后对新的窗口进行重叠或者扩张的操作
MultiWindows.py
""" 容纳多文档的窗口 QMdiArea QMdiSubWindow """ import sys, math from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * class MultiWindows(QMainWindow): count = 0 def __init__(self): super(MultiWindows, self).__init__() self.setWindowTitle("容纳多文档的窗口") #容纳多文档窗口 self.mdi = QMdiArea() self.setCentralWidget(self.mdi) bar = self.menuBar() file = bar.addMenu("File") file.addAction("New") file.addAction("cascade") file.addAction("Tiled") file.triggered.connect(self.windowaction) def windowaction(self, q): print(q) if q.text() == "New": MultiWindows.count += 1 #设置单个的子窗口 sub = QMdiSubWindow() #在子窗口上添加一个文本编辑框 sub.setWidget(QTextEdit()) sub.setWindowTitle("子窗口" + str(MultiWindows.count)) #将子窗口添加到多个窗口控件上 self.mdi.addSubWindow(sub) sub.show() elif q.text() == "cascade": #设置窗口的缩放方式为重叠 self.mdi.cascadeSubWindows() elif q.text() == 'Tiled': #设置窗口的缩放方式为展开 self.mdi.tileSubWindows() if __name__ == "__main__": app = QApplication(sys.argv) main = MultiWindows() main.show() sys.exit(app.exec_())
每天更新pyQt5内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?