PyQt5高级界面控件之QDockWidget

使用PyQt5高级界面控件之QDockWidget实现主页面模块关闭与显示

前言

QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中,QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围
方法描述
setWidget()在Dock窗口区域设置QWidget
setFloating()设置Dock窗口是否可以浮动,如果设置为True,则表示可以浮动
setAlllowedAreas()在Dock窗口区域设置QWidget
LeftDockWidgetArea:左侧停靠区域
RightDockWidgetArea:右侧停靠区域
TopDockWidgetArea:顶部停靠区域
BottomDockWidgetArea:底部停靠区域
NoDockWidgetArea:不显示Widget
setFearures()设置停靠窗口的功能属性
DockWidgetClosable:可关闭
DockWidgetMovable:可移动
DockWidgetFloatable:可漂浮
DockWidgetVerticalTitleBar:在左边显示垂直的标签栏
NoDockWidgetFeatures:无法关闭,不能悬浮,不能移动
AllDockWidgetFeatures:具有前三种属性的所有功能
# -*- coding: utf-8 -*-
# @Author : Code_ts
# @Time : 2023/2/13 下午1:28
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt

class MyDockDemo(QMainWindow):
    def __init__(self, parent=None):
        super(MyDockDemo, self).__init__(parent)
        layout = QHBoxLayout()
        bar = self.menuBar()
        file = bar.addMenu("File")
        action_exit = QAction('Exit', self)
        action_exit.triggered.connect(self.close)
        file.addAction(action_exit)
        action_sace = QAction('Save', self)
        action_sace.triggered.connect(self.save)
        file.addAction(action_sace)
        file.addAction("New")

        file.addAction("Quit")

        self.items = QDockWidget("Dockable", self)
        self.listWidget = QListWidget()
        self.listWidget.addItem("item1")
        self.listWidget.addItem("item2")
        self.listWidget.addItem("item3")
        self.items.setWidget(self.listWidget)
        self.items.setFloating(False)
        self.setCentralWidget(QTextEdit("Hello World!"))
        self.addDockWidget(Qt.RightDockWidgetArea, self.items)
        self.setLayout(layout)
        self.setWindowTitle("Dock Demo")

    def save(self):
        self.items = QDockWidget("Dockable", self)
        self.listWidget = QListWidget()
        self.listWidget.addItem("item1")
        self.listWidget.addItem("item2")
        self.listWidget.addItem("item3")
        self.items.setWidget(self.listWidget)
        self.items.setFloating(False)
        self.setCentralWidget(QTextEdit("Hello World!"))
        self.addDockWidget(Qt.RightDockWidgetArea, self.items)


if __name__  == '__main__':
    app = QApplication(sys.argv)
    win = MyDockDemo()
    win.show()
    sys.exit(app.exec_())

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值