• Qt扩展-KDDockWidgets 简介及配置


    一、概述

    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
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    C语言-指针初阶(6)
    Java线程与锁-2
    【SpringBoot+MP】阿里云短信测试服务操作流程、用户手机验证码登录实现
    Oracle数据库 sql优化
    ArcgisForJS如何实现添加含图片样式的点要素?
    深度优先遍历与连通分量
    「Python入门」Python代码规范(风格)
    严格反馈非线性系统基于事件触发的自抗扰预设有限时间跟踪控制
    c++ 11 原子操作库 (std::atomic)(一)
    IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
  • 原文地址:https://blog.csdn.net/qq_43680827/article/details/132942166