码迷,mamicode.com
首页 > 其他好文 > 详细

多文档界面QMdiArea

时间:2019-02-18 13:02:39      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:asc   trigger   mamicode   imp   dia   pyqt   .exe   ini   cas   

当使用多文档界面功能时,我们是将QMdiArea作为主窗口的中央部件,然后在这个中央部件中,我们可以同时打开很多个子窗口QMdiSubWindow

样式:

技术图片

 

 1 import sys
 2 from PyQt5.QtGui import QIcon
 3 from PyQt5.QtWidgets import QApplication, QMainWindow, QMdiArea, QMdiSubWindow, QAction, QTextEdit
 4 
 5 
 6 class Demo(QMainWindow):#继承QMainWindow
 7     def __init__(self):
 8         super(Demo, self).__init__()
 9         self.mdi_area = QMdiArea(self)  # 实例化一个多文档窗口
10         self.setCentralWidget(self.mdi_area)  #把多文档窗口设置为主窗口的中央控件
11 
12         self.toolbar = self.addToolBar(Tool Bar)
13 
14         self.new_action = QAction(新建, self)
15         self.close_action = QAction(关闭, self)
16         self.close_all_action = QAction(全关闭, self)
17         self.mode1_action = QAction(层叠, self)
18         self.mode2_action = QAction(平铺, self)
19 
20         self.new_action.triggered.connect(self.new_func)
21         self.close_action.triggered.connect(self.mdi_area.closeActiveSubWindow)
22         #self.mdi_area.closeActiveSubWindow   关闭当前激活的窗口
23 
24         self.close_all_action.triggered.connect(self.mdi_area.closeAllSubWindows)
25         #self.mdi_area.closeAllSubWindows    关闭所有子窗口
26 
27         self.mode1_action.triggered.connect(self.mdi_area.cascadeSubWindows)
28         #self.mdi_area.cascadeSubWindows   层叠布局子窗口
29 
30         self.mode2_action.triggered.connect(self.mdi_area.tileSubWindows)
31         #self.mdi_area.tileSubWindows   平铺布局子窗口
32 
33         self.toolbar.addAction(self.new_action)
34         self.toolbar.addAction(self.close_action)
35         self.toolbar.addAction(self.close_all_action)
36         self.toolbar.addAction(self.mode1_action)
37         self.toolbar.addAction(self.mode2_action)
38 
39     def new_func(self):
40         text = QTextEdit()
41         sub = QMdiSubWindow()  #实例化一个子窗口
42         sub.setWidget(text)   #设置子窗口的控件
43         self.mdi_area.addSubWindow(sub)  #在多文档窗口中添加子窗口
44         sub.show()  #显示子窗口
45 
46 
47 if __name__ == __main__:
48     app = QApplication(sys.argv)
49     demo = Demo()
50     demo.show()
51     sys.exit(app.exec_())

 

多文档界面QMdiArea

标签:asc   trigger   mamicode   imp   dia   pyqt   .exe   ini   cas   

原文地址:https://www.cnblogs.com/liming19680104/p/10394804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!