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

一. 浮动窗口

浮动窗口(也称为“停靠窗口”或“工具窗口”),是一个可以在主窗口内或主窗口外部悬浮的窗口。它通常用于显示工具栏、面板或其他附加信息。浮动窗口可以被拖动、最小化、最大化或关闭
浮动窗口是通过 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);

运行结果如下:

在这里插入图片描述


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

Qt中,创建和管理`QDockWidget`窗口的步骤如下: 1. 创建`QDockWidget`对象:使用`new`关键字创建`QDockWidget`的实例,并可以提供一个标题,这个标题将显示在窗口的顶部。 ```cpp QDockWidget* dockWidget = new QDockWidget(tr("标题"), this); ``` 2. 设置`QDockWidget`的窗口部件:你可以通过`setWidget()`方法为`QDockWidget`设置一个中心窗口部件(`QWidget`),这是`QDockWidget`的内容区域。 ```cpp QWidget* centralWidget = new QWidget; dockWidget->setWidget(centralWidget); ``` 3. 将`QDockWidget`添加到主窗口:使用`QMainWindow`的`addDockWidget()`方法将`QDockWidget`添加到主窗口中。你可以指定`QMainWindow`的边角位置,例如,`Qt::LeftDockWidgetArea`表示窗口将被添加到主窗口的左侧。 ```cpp addDockWidget(Qt::LeftDockWidgetArea, dockWidget); ``` 4. 可选设置:`QDockWidget`提供了许多功能,比如可浮动、可关闭等,你可以通过`setFeatures()`方法设置这些特性。 ```cpp dockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); ``` 5. 调整和管理:之后你可以根据需要对`QDockWidget`进行更多的调整和管理,比如改变其大小,禁用其关闭或浮动等特性。 ```cpp dockWidget->resize(200, 200); // 设置窗口大小 dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); // 设置窗口可以移动到哪些区域 dockWidget->setFloating(false); // 禁止浮动 ``` 6. 启用或禁用`QDockWidget`:你可以根据需要启用或禁用`QDockWidget`。 ```cpp dockWidget->setEnabled(false); // 禁用 // 或 dockWidget->setEnabled(true); // 启用 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值