当前位置: 首页 > news >正文

【Qt】Qt窗口 | QDockWidget 浮动窗口

文章目录

  • 一. 浮动窗口
  • 二. 代码创建&使用浮动窗口
    • 1. 创建浮动窗口
    • 2. 设置可停靠位置
    • 3. 添加控件

一. 浮动窗口

浮动窗口(也称为“停靠窗口”或“工具窗口”),是一个可以在主窗口内或主窗口外部悬浮的窗口。它通常用于显示工具栏、面板或其他附加信息。浮动窗口可以被拖动、最小化、最大化或关闭
浮动窗口是通过 QDockWidget类 实现浮动的功能,浮动窗口一般位于核心部件的周围,可以有多个,如下图红色区域都是浮动窗口
在这里插入图片描述

二. 代码创建&使用浮动窗口

1. 创建浮动窗口

浮动窗口,通过 QDockWidget类 提供的构造方法 QDockWidget()函数 动态创建
通过 QMainWindow类 提供的 addDockWidget 方法添加浮动窗口并设置其初始化位置,其函数原型如下:
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget);

area是浮动窗口的初始位置,dockwidget是浮动窗口

area类型为枚举类型,位置如下:

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

代码示例:

QDockWidget *dockWidget = new QDockWidget();
this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);//设置在左侧

运行结果如下:
在这里插入图片描述


2. 设置可停靠位置

浮动窗口可以位于中心部件的周围,通过 QDockWidget类 提供的 setAllowedAreas() 函数设置其允许停靠的位置,其允许停靠的位置如上所述
代码示例:设置浮动窗口允许左右停靠

//设置可停靠的位置
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

运行结果如下:
在这里插入图片描述


3. 添加控件

Qt 设置 浮动窗口只能设置一个控件,所以如果要添加多控件,可以设置 QWidget类,然后将其他控件添加到 QWidget上
代码示例:设置布局管理器,管理标签和按钮

//设置界面
QWidget *container = new QWidget();
dockWidget->setWidget(container);
QVBoxLayout *vLayout = new QVBoxLayout();
container->setLayout(vLayout);
//标签和按钮
QLabel *label = new QLabel("标签文本");
QPushButton *button = new QPushButton("按钮");
vLayout->addWidget(label);
vLayout->addWidget(button);

运行结果如下:

在这里插入图片描述


结束语
感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述


http://www.mrgr.cn/news/1055.html

相关文章:

  • python使用flask实现自动根据url寻找对应目录/文件/方法,实现动态路由
  • xss GAME (xss漏洞攻击1-8)
  • html文件运行后界面反馈xxx拒绝连接
  • leetcode 552. 学生出勤记录 II
  • 用ChatGPT出题,完全做不完
  • 24 初入python
  • 每日一题,力扣leetcode Hot100之189.轮转数组
  • 8月15日笔记
  • 贝克资本再发力,新兴数字项目引领亚洲投资新潮
  • java 函数接口Consumer简介与示例【函数式编程】【Stream】
  • 解决k8s分布式集群,子节点加入到主节点失败的问题
  • golang Kratos 概念
  • 排序算法刷题【排序链表】
  • 1、.Net UI框架:MAUI - .Net宣传系列文章
  • 车载以太网自动化测试套件—AETP.UDS
  • 基于RabbitMQ的消息监听器
  • Xshell中弹出“ssh服务器拒绝了密码请再试一次”时,如何解决
  • 目标检测之数据增强
  • 腾讯云 AI 代码助手四大基础功能介绍
  • K8S 探针