【Pyqt5应用实例】Pyqt5实现添加多个子窗口布局之QMdiArea

【Pyqt5应用实例】Pyqt5实现添加多个子窗口布局

  • 功能结果显示
  • 完整代码示例

功能结果显示

【Pyqt5应用实例】Pyqt5实现添加多个子窗口布局之QMdiArea_第1张图片
【Pyqt5应用实例】Pyqt5实现添加多个子窗口布局之QMdiArea_第2张图片
【Pyqt5应用实例】Pyqt5实现添加多个子窗口布局之QMdiArea_第3张图片

完整代码示例

# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
            
class MainWindow(QMainWindow):
	count=0
	def __init__(self, parent=None):
		super(MainWindow, self).__init__(parent)
		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[QAction].connect(self.windowaction)
		self.setWindowTitle("MDI 示例")

	def windowaction(self, q): 
		# 通过点击不同的按钮实现不同布局的显示方式
		if q.text()=="New":
			MainWindow.count=MainWindow.count+1
			sub=QMdiSubWindow()
			sub.setWidget(QTextEdit())
			sub.setWindowTitle("subwindow"+str(MainWindow.count))
			self.mdi.addSubWindow(sub)
			sub.show()
		if q.text()=="cascade":
			self.mdi.cascadeSubWindows()
		if q.text()=="Tiled":
			self.mdi.tileSubWindows()
             	
if __name__ == '__main__':
	app = QApplication(sys.argv)
	demo = MainWindow()
	demo.show()
	sys.exit(app.exec_())

你可能感兴趣的:(从零开始学Pyqt5,python,pyqt5,多窗口布局,QMidArea)