前言
QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。
QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。Dock window是放置在
QMindow窗口周围的dock widget区域中的
参考博客:QDockWidget详解https://blog.csdn.net/chenlong12580/article/details/9051847 参考代码:Qt\Examples\Qt-5.15.2\widgets\mainwindows
注意:QDockWidget目前只有锁定在QMainWindow窗口内部,才能展现出QDockWidget应有的属性,如果将QDockWidget放到布局管理器当中,那么就只能当作QWidget使用了。
Qt 参考实例当中提供了QMainWindows窗口,看起来也很漂亮,但其实存在这诸多问题。如何要在项目中使用,那么就要进行大量改造。
1、QDockWidget常用方法
常用函数:
1、addDockWidget:添加停靠控件,用于指定或更改停靠控件的位置以及方向。
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation)
2、splitDockWidget:分割窗口,用于对两个QDockWidget进行水平或垂直布局。
void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation)
3、tabifyDockWidget:合并窗口,用于将多个QDockWidget叠加到同一区域。
void QMainWindow::tabifyDockWidget(QDockWidget * first, QDockWidget * second)
4、setDockNestingEnabled:是否允许嵌套布局
void QMainWindow::setDockNestingEnabled(bool enabled)
2、标题栏
先上效果图:
2.1、标题栏之最小化,关闭按钮的改造
Qt默认的最小化,关闭按钮等功能键样式太过复古,已经完全不适应现在用户的审美要求。那么我选择使用Qt无边框属性。将Qt自带的功能键取掉,自己来实现,这样式样可控。