0
点赞
收藏
分享

微信扫一扫

KDDockWidgets源码编译及安装


简介

​​KDDockWidgets​​​ 是由 ​​KDAB(官网)​​ 编写的 Qt Dock 小部件库,适用于替换 QDockWidget和实现 Qt 中缺少的高级功能。

功能特点:

  • 提供 QDockWidget 不支持的高级对接
  • 在 Windows 上调整本机窗口大小(即使使用自定义标题栏装饰也允许 Aero-snap)
  • 箭头下降指示器可实现出色的下降精度
  • 允许完全不同的、用户提供的、丢弃指示器类型
  • 在浮动窗口中嵌套停靠小部件并将该组停靠回主窗口
  • 停靠到任何主窗口,而不仅仅是父主窗口
  • 停靠到主窗口的中心,或者干脆去掉“中央小部件”的概念
  • 主窗口支持中心小部件中的可拆卸选项卡
  • 将标签栏中的任意标签分离到停靠区域
  • 支持1个以上主窗口
  • 支持关联,使一些停靠小部件只能停靠在某些主窗口上
  • 允许隐藏标题栏并只显示选项卡。允许通过标签栏拖动。
  • 公开内部助手小部件,以便用户可以自定义它们或提供他自己的
  • 自定义选项卡小部件
  • 自定义标题栏
  • 自定义窗框
  • 自定义小部件分隔符
  • 跨平台(macOS、Linux、Windows、WebAssembly、Wayland、X11/XCB、EGLFS 正在工作)有关平台特定信息,请参阅 README-Wayland.md 和 README-WASM.md。
  • 布局引擎遵守最小/最大尺寸限制和一些尺寸策略
  • PySide2 绑定
  • 干净的代码库
  • 不将 GUI 与状态与逻辑与动画混合
  • 强大的测试覆盖率,甚至 GUI 和 DnD 操作都经过测试。目前有 200 个测试。
  • 用于进行随机测试和查找错误的模糊器
  • 延迟分隔符调整大小
  • 用鼠标重新排序标签
  • 部分布局保存/恢复,仅影响选定的子集
  • 双击标题栏最大化
  • 双击分隔符以平均分配
  • 在选项卡上显示关闭按钮
  • 允许使停靠小部件不可关闭和/或不可停靠
  • 标题栏上可选的最小化和最大化按钮
  • FloatingWindows 可以是实用程序窗口或完全原生的

KDDockWidgets源码编译及安装_安装


以上描述可以看到,KDDockWidgets的扩展功能是非常丰富的,操作有点类似VS。

github地址:​​https://github.com/KDAB/KDDockWidgets​

今天主要来介绍如何编译源码并安装,然后运行自带的示例。我在这过程中遇到了很多坑,把整个过程记录一下,以便他人参考。

注:
附带编译好的版本,编译环境:Qt5.15.2+VS2019 64位
包含KDDockWidgets源码 以及编译好的debug和release版本
其中,源码编译区分了QtWidget和QtQuick两个版本。

本dll及demo编译环境: vs2019+Qt5.15.2 64bit。 32bit不能用!!!

dll分quick和QWidget版是不一样的,对应的include头文件也不一样,不能混用。

example目录下包含两个演示demo,每个demo下有个KDDockWidgets文件夹,可以在自己的项目中直接添加 KDDockWidgets.pri到自己的工程中即可使用。

​​点我下载​​

编译准备

在编译KDDockWidgets之前所需要做以下准备:

  • cmake,​​参考这里​​
  • ninja,​​参考这里​​
  • 编译器,我这里使用VS2017进行编译,自行安装
  • Qt,KDDockWidgets 需要Qt >= 5.9(如果启用 Python 绑定,则 >=5.12)。QtQuick 支持需要Qt >= 5.15。支持Qt 6

设置环境变量

注意,这一步非常关键,安装完上面的软件后必须要设置环境变量,否则在编译KDDockWidgets时无法正确引用。

右键我的电脑打开属性:

KDDockWidgets源码编译及安装_KDDockWidgets_02


KDDockWidgets源码编译及安装_KDDockWidgets_03


KDDockWidgets源码编译及安装_环境变量_04


KDDockWidgets源码编译及安装_编译环境_05

注意,如果想编译32位,那么环境变量配置就统一设置x86的路径,如果要编译64位,则统一设置x64路径,以下是配置32位的路径:

新建系统变量LIB,添加VS相关的环境变量

KDDockWidgets源码编译及安装_KDDockWidgets_06


新建系统变量INCLUDE

KDDockWidgets源码编译及安装_KDDockWidgets_07


在PATH中添加 cmake、ninja、Qt、VS等环境变量

KDDockWidgets源码编译及安装_自定义_08

同理,如果是64位,那么配置x64的环境变量,如下:

KDDockWidgets源码编译及安装_KDDockWidgets_09


KDDockWidgets源码编译及安装_编译环境_10


KDDockWidgets源码编译及安装_编译环境_11

注:以上是我电脑的路径,根据自己的实际路径进行添加。

重点:设置完环境变量后双击运行一下这个脚本:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat

KDDockWidgets源码编译及安装_安装_12


或者如果设置32位,那就双击运行vcvars32.bat

如果是64位,那就双击运行vcvars64.bat

开始编译

从github上下载源代码到本地

KDDockWidgets源码编译及安装_编译环境_13

打开CMD终端 将目录切换到源码目录

然后输入:​​cmake . -G Ninja​

KDDockWidgets源码编译及安装_KDDockWidgets_14


然后输入:​​cmake --build .​​ 等待编译

KDDockWidgets源码编译及安装_编译环境_15


执行完后会在bin目录下生成

KDDockWidgets源码编译及安装_环境变量_16


这里编译会将源代码以及示例代码一起编译,在bin目录下生成示例程序,双击即可打开体验。最后执行安装命令:​​cmake --build . --target install​

KDDockWidgets源码编译及安装_安装_17


注意,这里只是编译了debug版本的库,默认会安装到C盘:

KDDockWidgets源码编译及安装_安装_18


可以通过将选项传递​​-DCMAKE_INSTALL_PREFIX=/install/path​​给 cmake来更改安装位置

如:​​cmake -G Ninja -DCMAKE_INSTALL_PREFIX=xxx​

根据官方提供的示例运行,体验还不错,功能比原生的QDockWidget更加丰富,若想在自己项目中使用KDDockWidgets,可以参照其示例进行修改。

编译KDDockWidgets Qt Quick示例

上面提到如果要使用Quick 那么Qt需要5.15版本以上,而且编译时默认关闭了编译QtQuick,所以如果需要编译运行Quick示例的话,需要修改编译文件,在根目录下找到​​CMakeLists.txt​​文件并打开,然后找到

option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" OFF)

将OFF改成ON即可

option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" ON)

然后删除之前的编译生成文件,重新编译源码,就会在bin目录下看到quick的示例:

KDDockWidgets源码编译及安装_安装_19

可能会遇到的问题

以上步骤看起来很简单,但其实过程中遇到了很多的问题,主要都是环境变量引起的,比如:

KDDockWidgets源码编译及安装_环境变量_20


还有其他lib引用错误等,其实都是环境变量的原因导致的,如果要编译32bit,那么所有的环境变量配置都需要32位的路径,Qt也需要安装32位的vs版本,64位同理,只要设置正确就不会有啥大问题了。

编译release版本

$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
$ cmake --build . --target install

注意,在重新编译之前,需要将之前编译生成的文件全部删除后再编。

已编译好的版本

附带编译好的版本,编译环境:Qt5.15.2+VS2019 64位

包含KDDockWidgets源码 以及编译好的debug和release版本

其中,源码编译区分了QtWidget和QtQuick两个版本,如果要使用qml的dockwidget功能的话就需要编译QtQuick库才行

KDDockWidgets源码编译及安装_编译环境_21

KDDockWidgets源码编译及安装_自定义_22


KDDockWidgets源码编译及安装_环境变量_23


这里包含了debug和release版本的库,其他三个是自带的示例。

注:
附带编译好的版本,编译环境:Qt5.15.2+VS2019 64位
包含KDDockWidgets源码 以及编译好的debug和release版本
其中,源码编译区分了QtWidget和QtQuick两个版本。

本dll及demo编译环境: vs2019+Qt5.15.2 64bit。 32bit不能用!!!

dll分quick和QWidget版是不一样的,对应的include头文件也不一样,不能混用。

example目录下包含两个演示demo,每个demo下有个KDDockWidgets文件夹,可以在自己的项目中直接添加 KDDockWidgets.pri到自己的工程中即可使用。


举报

相关推荐

0 条评论