zoukankan      html  css  js  c++  java
  • 多文档界面QMdiArea

    当使用多文档界面功能时,我们是将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_())
  • 相关阅读:
    iframe和DataForm
    django文件上传
    MySQL 对于千万级的大表要怎么优化?
    mysql myisam转innodb的2种方法
    mysql 中order by 与group by的顺序
    sql 时间转换问题 from_unixtime() UNIX_TIMESTAMP()
    MySQL大表优化方案
    iptables nat及端口映射
    一个不可思议的MySQL慢查分析与解决
    iptables中DNAT、SNAT和MASQUERADE的理解
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10394804.html
Copyright © 2011-2022 走看看