【Qt】浮动窗口

目录

一、浮动窗口

1. 什么是浮动窗口

二、QDockWidget介绍

1. 简介

2.QDockWidget的属性

3.常用API

三、代码创建浮动窗口

1. 创建浮动窗口

2. 设置浮动窗口允许停靠的位置


一、浮动窗口


1. 什么是浮动窗口


浮动窗口是计算机图形界面中一种常见的窗口类型,它可以悬浮在其他窗口之上并且可以自由移动。浮动窗口通常被用于显示一些特定的信息或功能,例如实时监测数据、通知消息、弹出菜单等。浮动窗口可以在屏幕上的任何位置出现,用户可以根据需要将其拖动到合适的位置。

二、QDockWidget介绍


1. 简介


QDockWidget是Qt中实现浮动窗口的一个类,它提供了一个可停靠的面板,可用于显示和编辑各种内容。

QDockWidget可以在主窗口中创建并停靠在不同的位置,如左侧、右侧、顶部或底部。它可以通过拖动和放置的方式来改变其位置和大小。QDockWidget还可以嵌套在另一个QDockWidget内部,创建一个多级的停靠窗口布局。

2.QDockWidget的属性
属性说明
titleBarWidget设置自定义的标题栏部件
features设置停靠窗口的功能,
可以使用QDockWidget的DockWidgetFeature枚举值
- DockWidgetClosable
- DockWidgetMovable
- DockWidgetFloatable
allowedAreas设置停靠窗口可以停靠的区域
可以使用Qt::DockWidgetArea枚举值
- LeftDockWidgetArea
- RightDockWidgetArea
- TopDockWidgetArea
- BottomDockWidgetArea
floating设置停靠窗口是否以浮动窗口的方式显示
widget设置停靠窗口中要显示的内容部件
objectName为停靠窗口设置唯一的对象名称,用于在代码中引用和操作该窗口
3.常用API
方法说明
setWidget(QWidget *widget)设置QDockWidget的内容部件
widget()获取QDockWidget的内容部件
setTitleBarWidget(QWidget *widget)设置QDockWidget的标题栏部件
titleBarWidget()获取QDockWidget的标题栏部件
setAllowedAreas(Qt::DockWidgetAreas areas)设置QDockWidget允许停靠的区域
allowedAreas()获取QDockWidget允许停靠的区域
setFloating(bool floating)设置QDockWidget是否浮动
isFloating()判断QDockWidget是否浮动
setMinimumSize(const QSize &size)设置QDockWidget的最小尺寸
setMaximumSize(const QSize &size)设置QDockWidget的最大尺寸
minimumSize()获取QDockWidget的最小尺寸
maximumSize()获取QDockWidget的最大尺寸
setWindowTitle(const QString &title)设置QDockWidget的窗口标题
windowTitle()获取QDockWidget的窗口标题

三、代码创建浮动窗口

1. 创建浮动窗口

浮动窗⼝的创建是通过 QDockWidget类 提供的构造⽅法 QDockWidget()函数 动态创建的

 //创建浮动窗口
        QDockWidget* dockwidget = new QDockWidget();
        //使用 addDockWidget 方法, 把浮动窗口加入到子窗口中
        this->addDockWidget(Qt::BottomDockWidgetArea,dockwidget);
        //设置窗口标题
        dockwidget->setWindowTitle("Floating window");

运行结果:

2. 设置浮动窗口允许停靠的位置

浮动窗⼝是位于中⼼部件的周围。可以通过 QDockWidget类 中提供 setAllowedAreas() 函数设置其允许停靠的位置。

可以设置允许停靠的位置有:
• Qt::LeftDockWidgetArea 停靠在左侧
• Qt::RightDockWidgetArea 停靠在右侧
• Qt::TopDockWidgetArea 停靠在顶部
• Qt::BottomDockWidgetArea 停靠在底部
• Qt::AllDockWidgetAreas 以上四个位置都可停靠


//设置窗口只允许左和上停靠
 dockwidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea);

运行结果:


                        
原文链接:https://blog.csdn.net/m0_74014525/article/details/139176380

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值