- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目录
一、概述
QDockWidget
是 Qt 框架中用于创建可停靠窗口的组件。它允许用户在主窗口的四周(顶部、底部、左侧、右侧)停靠或浮动显示一个独立的窗口。QDockWidget
广泛应用于工具栏、侧边栏、调试窗口等场景,为用户提供灵活的界面布局和操作体验。
二、使用场景
1. 工具栏
QDockWidget
可以用作工具栏,例如文件浏览器、属性编辑器等。用户可以根据需要将工具栏停靠在主窗口的任意一侧,或将其浮动为独立窗口。
2. 侧边栏
在复杂的应用程序中,侧边栏通常用于显示项目视图、导航面板等内容。QDockWidget
可以方便地实现侧边栏的停靠和浮动功能。
3. 调试窗口
在开发或调试过程中,调试窗口(如变量查看器、日志输出等)是必不可少的工具。QDockWidget
可以将调试窗口停靠在主窗口的任意位置,方便开发者查看和操作。
三、常见样式
1. 停靠位置
QDockWidget
可以停靠在主窗口的四个区域:
-
顶部(
Qt::TopDockWidgetArea
) -
底部(
Qt::BottomDockWidgetArea
) -
左侧(
Qt::LeftDockWidgetArea
) -
右侧(
Qt::RightDockWidgetArea
)
2. 浮动窗口
QDockWidget
可以作为独立的窗口浮动在主窗口之外,用户可以通过拖动标题栏将其移动到任意位置。
3. 可关闭
QDockWidget
可以设置为可关闭,用户可以通过关闭按钮关闭停靠窗口。
4. 可移动
用户可以通过拖动标题栏来移动停靠窗口,调整其位置或将其停靠到其他区域。
四、属性设置
QDockWidget
提供了丰富的属性设置方法,开发者可以通过这些方法灵活地配置停靠窗口的行为和外观。
1. 设置内容
QTextEdit *textEdit = new QTextEdit; dockWidget->setWidget(textEdit);
2. 获取内容
QWidget *widget = dockWidget->widget();
3. 设置标题
dockWidget->setWindowTitle("Dock Widget");
4. 获取标题
QString title = dockWidget->windowTitle();
5. 设置特性
dockWidget->setFeatures(QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable);
6. 获取特性
QDockWidget::DockWidgetFeatures features = dockWidget->features();
7. 设置可停靠区域
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
8. 获取可停靠区域
Qt::DockWidgetAreas areas = dockWidget->allowedAreas();
五、信号与槽
1. 浮动状态改变信号
connect(dockWidget, &QDockWidget::topLevelChanged, this, &MyClass::onTopLevelChanged);
2. 可停靠区域改变信号
connect(dockWidget, &QDockWidget::allowedAreasChanged, this, &MyClass::onAllowedAreasChanged);
3. 特性改变信号
connect(dockWidget, &QDockWidget::featuresChanged, this, &MyClass::onFeaturesChanged);