• 停靠窗口QDockWidget


    停靠窗口QDockWidget要和QMainWindow一起搭配使用的

    样式:

     1 import sys
     2 from PyQt5.QtCore import Qt
     3 from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEdit
     4 
     5 
     6 class Demo(QMainWindow):#必须继承QMainWindow
     7     def __init__(self):
     8         super(Demo, self).__init__()
     9 
    10         self.dock1 = QDockWidget('Dock Window 1', self)#实例化一个停靠窗口【虚拟窗口】。参数1:停靠窗口的标题
    11         self.dock2 = QDockWidget('Dock Window 2', self)
    12         self.dock3 = QDockWidget('Dock Window 3', self)
    13 
    14 
    15         self.dock1.setAllowedAreas(Qt.RightDockWidgetArea | Qt.LeftDockWidgetArea)
    16         #设置停靠窗口的可停靠区域
    17         #Qt.LeftDockWidgetArea   可在左边停靠
    18         #Qt.RightDockWidgetArea   可在右边停靠
    19         #Qt.TopDockWidgetArea    可在顶部停靠
    20         #Qt.BottomDockWidgetArea    底部
    21         #Qt.AllDockWidgetAreas   全部区域
    22         #Qt.NoDockWidgetArea     不可停靠(将不显示Widget)
    23         self.dock2.setAllowedAreas(Qt.RightDockWidgetArea | Qt.TopDockWidgetArea)
    24         self.dock3.setAllowedAreas(Qt.NoDockWidgetArea)
    25 
    26         self.dock1.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable )
    27         #设置停靠窗口的功能属性
    28         #QDockWidget.DockWidgetClosable =0x01   可关闭停靠窗口
    29         #QDockWidget.DockWidgetMovable=0x02     停靠窗口可在停靠区域中进行移动
    30         #QDockWidget.DockWidgetFloatable=0x04   停靠窗口可与主窗口分离,以一种浮动的独立窗口显示
    31         #QDockWidget.DockWidgetVerticalTitleBar=0x08  在停靠窗口中的左侧显示一个标签栏。【标题栏放在左侧】
    32         #QDockWidget.AllDockWidgetFeatures   前三种的全部功能,即可关闭,可移动和可浮动。由于日后官方会往停靠窗口中加入更多新功能属性,所以请慎用该参数
    33         #QDockWidget.NoDockWidgetFeatures=0x00  停靠窗口无法被关闭,移动或以浮动状态显示
    34         self.dock2.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetClosable)
    35         self.dock3.setFeatures(QDockWidget.DockWidgetClosable )
    36 
    37 
    38         self.text1 = QTextEdit()
    39         self.text2 = QTextEdit()
    40         self.text3 = QTextEdit()
    41 
    42         self.dock1.setWidget(self.text1)  #给停靠窗口设置一个实际窗口(或控件)
    43         self.dock2.setWidget(self.text2)
    44         self.dock3.setWidget(self.text3)
    45         46         
    47         self.addDockWidget(Qt.RightDockWidgetArea, self.dock1)#在主窗口中添加停靠窗口
    48         #参数1:停靠窗口的起始位置
    49         #参数2:添加的停靠窗口
    50         self.addDockWidget(Qt.RightDockWidgetArea, self.dock2)
    51         self.addDockWidget(Qt.RightDockWidgetArea, self.dock3)
    52 
    53 
    54         self.center_text = QTextEdit()
    55         self.setCentralWidget(self.center_text)#设置中央控件
    56 
    57 
    58 if __name__ == '__main__':
    59     app = QApplication(sys.argv)
    60     demo = Demo()
    61     demo.show()
    62     sys.exit(app.exec_())
  • 相关阅读:
    vs快捷键
    深入理解react和redux
    eclispe下maven项目报错解决方式
    ios fixed浮层 光标下移解决方案
    jQuery的extend()用法
    连续数字数值转换成逗号分隔
    css 清除浮动
    恶补JavaScript第二篇
    恶补JavaScript第一篇
    中文英文左右padding一致两端对齐实现(转载)
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10393883.html
Copyright © 2020-2023  润新知