首页 > 其他分享 >27.PyQt5【高级组件】浮动窗口-QDockWidget

27.PyQt5【高级组件】浮动窗口-QDockWidget

时间:2023-01-16 11:03:22浏览次数:44  
标签:27 窗口 self PyQt5 QDockWidget 停靠 dockWidget 组件

一、前言

Qt提供QDockWidget停靠窗口控件来实现浮动窗口的功能,QDockWidget停靠窗口控件一般使用在QMainWindow中,它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。

二、学习目标

1.QDockWidget常用方法

2.QDockWidget常用信号

3.QDockWidget组件的应用

三、知识点

1.【QDockWidget常用方法】

  • QMainWindow提供了一系列函数来管理和操控QDockWidget

    方法 描述
    addDockWidget(area,dockwidget) 添加一个给定的停靠窗口到指定区域
    splitDockWidget(after,dockwidget,orientation) 把两个dock进行左右或上下并排布置,做成一个类似QSplitter的功能
    tabifyDockWidget(first,second) 移动第二个停靠窗口到第一个停靠窗口,可以在主窗口中生成一个标签样式的停靠窗口
    tabifiedDockWidgets(dockwidget) 返回和指定停靠窗口形成标签样式的停靠窗口列表
    removeDockWidget(dockwidget) 从主窗口布局中移除停靠窗口,并隐藏它,注意,停靠窗口并不会被删除
    restoreDockWidget(dockwidget) 恢复停靠窗口的状态
    dockWidgetArea(dockwidget) 返回指定停靠窗口的停靠区域,返回值为Qt. DockWidgetArea的相关取值
    resizeDocks(docks,sizes,orientation) 改变指定停靠窗口列表的尺寸
    setDockNestingEnabled(enabled) 设置停靠窗口是否可以嵌套
    isDockNestingEnabled() 返回停靠窗口是否有可嵌套的特性
    setDockOptions(options) 设置停靠窗口的停靠属性,取值见QMainWindow. DockOption:
    AnimatedDocks: 动画方式停靠;
    AllowNestedDocks: 允许嵌套;
    AllowTabbedDocks: 允许标签页方式停靠;
    ForceTabbedDocks: 强制标签页方式停靠;
    VerticalTabs: 垂直标签页方式;
    GroupedDragging: 允许成组拖动标签页停靠窗口。
    dockOptions() 获得停靠窗口的停靠属性
  • QDockWidget常用方法

    方法 描述
    setWidget(widget) 在Dock窗口区域设置QWidget
    setFloating(floating) 设置Dock窗口是否可以浮动,如果设置为True,则表示可以浮动
    setTitleBarWidget(widget) 设置停靠窗口标题栏部件
    setAllowedAreas(areas) 设置窗口可以停靠的Qt. DockWidgetArea区域:
    LeftDockWidgetArea: 窗口可在左侧停靠;
    RightDockWidgetArea: 窗口可在右侧停靠;
    TopDockWidgetArea: 窗口可在顶端停靠;
    BottomDockWidgetArea: 窗口可在底端停靠;
    AllDockWidgetArea: 窗口可在任意方向停靠;
    NoDockWidgetArea: 只可停靠在插入处。
    setFeatures(features) 设置停靠窗口的功能属性:
    DockWidgetClosable: 允许关闭,在一些系统上会显示一个关闭按钮;
    DockWidgetMovable: 允许在Dock之间移动;
    DockWidgetFloatable: 允许作为一个独立窗口浮动;
    DockWidgetVerticalTitleBar: 在Dock左侧显示一个垂直标题栏;
    AllDockWidgetFeatures:具有前三种属性的所有功能;
    NoDockWidgetFeatures: 无具体特性设置,无法关闭、移动或者浮动。
    features() 返回停靠窗口的特性设置
    isFloating() 返回停靠窗口的可浮动属性
    allowedAreas() 返回停靠窗口允许停靠的区域
    titleBarWidget() 返回停靠窗口标题栏部件

2.【QDockWidget常用信号】

信号 描述
allowedAreasChanged(allowedAreas) 停靠窗口的允许停靠区域发生了改变时,发射该信号
dockLocationChanged(area) 停靠窗口的位置发生了改变时,发射该信号
featuresChanged(features) 停靠窗口的特性发生了改变时,发射该信号
topLevelChanged(topLevel) 停靠窗口的浮动属性发生了改变时,发射该信号
visibilityChanged(visible) 停靠窗口的可视属性(显示/隐藏)发生改变时,发射该信号

3.【QDockWidget组件的应用】

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow, QDockWidget, QTextEdit, QPushButton


class QmyMainWindow(QMainWindow):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QDockWidget组件示例")
        self.setCentralWidget(QTextEdit())   # QMainWindow中央区域设置文本编辑组件

        # QDockWidget组件定义
        self.dockWidget = QDockWidget("浮动窗口")                      # 定义一个QDockWidget组件
        self.button = QPushButton("Button")                          # 定义一个按钮组件
        # QDockWidget组件设置
        self.dockWidget.setWidget(self.button)                       # 将按钮组件添加到浮动窗体上
        self.dockWidget.setFloating(False)                           # 设置dockWidget组件不浮动
        # QDockWidget绑定信号
        self.dockWidget.dockLocationChanged.connect(self.on_dockWidget_dockLocationChanged)
        # 将dockWidget组件添加到窗体
        self.addDockWidget(Qt.RightDockWidgetArea, self.dockWidget)  # QMainWindow设置停靠区域

    def on_dockWidget_dockLocationChanged(self, area):
        """位置改变触发槽函数"""
        print("浮动窗口的位置改编为:{}".format(area))


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

标签:27,窗口,self,PyQt5,QDockWidget,停靠,dockWidget,组件
From: https://www.cnblogs.com/ckxingchen/p/17054894.html

相关文章

  • 14.PyQt5【基本组件】单选按钮-QRadioButton
    一、前言QRadioButton类对象呈现一个带有文本标签的可选按钮。用户可以选择表单上显示的许多选项之一。该类派生自QAbstractButton类。默认情况下,单选按钮是自动排他的......
  • 13.PyQt5【基本组件】普通按钮-QPushButton
    一、前言在任何GUI设计中,命令按钮都是最重要和最常用的控件。任何计算机用户都熟悉带有保存、打开、确定、是、否和取消等作为标题的按钮。在PyQtAPI中,QPushButton类......
  • 15.PyQt5【基本组件】复选按钮-QCheckBox
    一、前言当文本标签前出现一个矩形框时QCheckBox对象被添加到父窗口。就像QRadioButton一样,它也是一个可选择的按钮。它的常见用途是在要求用户选择一个或多个可用选项......
  • 16.PyQt5【基本组件】下拉列表-QComboBox
    一、前言QComboBox提供一个下拉列表,其中包含可供选择的项目。只显示当前选定的项目所需的窗体上的最小屏幕空间。二、学习目标1.QComboBox常用方法2.QComboBox常用信......
  • 18.PyQt5【基本组件】进度条对话框-QProgressDialog
    一、前言QProgressDialog进度对话框,向用户提示程序中当前任务的进度信息,用以提示当然任务正在进行,并按百分比显示进度。对话框提供了一个取消按钮,用以向用户提供终止操......
  • 17.PyQt5【基本组件】滑块-QSlider
    一、前言QSlider类对象向用户展示了一个可以移动手柄的凹槽。它是控制有界值的经典小部件。凹槽上手柄的位置相当于控件上下限之间的整数。通过在构造函数中提及方向,可以......
  • 19.PyQt5【基本组件】消息对话框-QMessageBox
    一、前言QMessageBox是一种常用的模态对话框,用于显示一些信息性消息,并可选择要求用户通过单击其上的任何一个标准按钮来做出响应。每个标准按钮都有一个预定义的标题、一......
  • 20.PyQt5【基本组件】输入对话框-QInputDialog
    一、前言这是一个预配置的对话框,带有一个文本字段和两个按钮,确定和取消。用户单击Ok按钮或按Enter后,父窗口收集文本框中的输入。用户输入可以是数字、字符串或列表中......
  • 22.PyQt5【高级组件】列表组件-QListWidget
    一、前言QListWidget用于从列表中添加或删除项目。列表中的每个项目都是一个QListWidgetItem对象。ListWidget可以设置为多选。二、学习目标1.QListWidget常用方法2......
  • 21.PyQt5【基本组件】文件对话框-QFileDialog
    一、前言QFileDialog小部件是一个文件选择器对话框。它使用户能够浏览文件系统并选择要打开或保存的文件。对话框通过静态函数或调用调用exec_()对话框对象上的函数。二......