Qt扩展-KDDockWidgets 简介及配置]
- 一、概述
- 二、编译 KDDockWidgets 库
- 1. Cmake Gui 中选择源文件和编译后的路径
- 2. 点击Config,配置好编译器
- 3. 点击Generate
- 4. 在存放编译的文件夹输入如下命令开始编译
- 三、qmake 配置
一、概述
kdockwidgets是一个由KDAB组织编写的qtdockwidget库,这个库适合替换qdockwidget,因为这个库实现qt中缺少的高级功能。虽然kddockwidgets已经准备好开箱即用,但它也可以被视为一个框架,允许构建自定义的对接系统,也是开放了源代码,但是也要注意开源协议。
这个库可以完成类似 多窗口分类合并停靠的功能,对于写工具软件的话,上手很快,使用也是非常简单的。
📁 项目地址 https://github.com/KDAB/KDDockWidgets
拥有的功能
提供QDockWidget不支持的高级对接
- Windows上的原生窗口大小调整(即使是自定义标题栏装饰也允许航空抓拍)
- 箭头下降指示大下降精度
- 允许用户提供完全不同的丢弃指示器类型
- 在浮动窗口中嵌套停靠部件,并将该组停靠回主窗口
- 对接到任何主窗口,而不仅仅是父主窗口
- 对接到主窗口的中心,或者简单地删除“中心部件”的概念。
- 在中心部件中支持可分离选项卡的主窗口
- 将任意选项卡从选项卡栏分离到停靠区域
- 支持1个以上主窗口
- 支持关联性,使得一些停靠部件只能在某些主窗口上停靠
- 允许隐藏标题栏,只显示选项卡。允许通过标签栏拖动。
- 公开内部助手部件,以便用户可以自定义它们或提供自己的工具
自定义选项卡部件
自定义标题栏
自定义窗口框架
自定义窗口组件分隔符 - 跨平台(macOS, Linux, Windows, WebAssembly, Wayland, X11/XCB, EGLFS正在工作)参见README-Wayland。md和README-WASM。Md为平台特定信息。
- 符合最小/最大尺寸约束和一些尺寸策略的布局引擎
- PySide2绑定
-干净的代码库
不要将GUI与状态、逻辑和动画混合在一起
很好的测试覆盖率,甚至GUI和DnD操作都经过了测试。目前有200个测试。
Fuzzer用于进行随机测试和查找bug - 延迟调整分隔符大小
- 用鼠标重新排序选项卡
- 部分布局保存/恢复,只影响选定的子集
- 双击标题栏以最大化
- 双击分隔符以均匀分布
- 在选项卡上显示关闭按钮
- 允许将停靠控件设置为不可关闭和/或不可停靠
- 标题栏上可选的最小化和最大化按钮
- FloatingWindows可以是实用窗口,也可以是完全原生的
二、编译 KDDockWidgets 库
这里我使用的 MinGW和 CMake-GUI工具编译的
从 GitHub下载出来的 目录下
1. Cmake Gui 中选择源文件和编译后的路径
2. 点击Config,配置好编译器
再次Config查看配置是否有效
记得再那个 选一个安装位置
3. 点击Generate
4. 在存放编译的文件夹输入如下命令开始编译
我用的 mingw32 编译套件,所以我使用的 下面的 make 命令
再输入 mingw32-make.exe install
能看到编译完成的存放路径
三、qmake 配置
把 bin 目录下的 dll 与 exe程序放置一起
在使用 qmake 的时候 在 pro 文件中引入这个
win32: LIBS += -L$$PWD/DockFiles/lib/ -llibkddockwidgets1.dll
INCLUDEPATH += $$PWD/DockFiles/include
DEPENDPATH += $$PWD/DockFiles/include