作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

使用过 VS 的朋友,一定对 dock 不陌生,无论布局、停靠、还是拖拽都非常好用,尤其是在功能较多,界面较复杂的程序中。

虽然 Qt 也有类似的功能(QDockWidget),但相对较弱。如果自己写的话,又得花很大精力(不建议造轮子)。因此呢,给大家分享两个不错的Github 开源项目:

  • https://github.com/JackyDing/QtFlex5

  • https://github.com/mfreiholz/Qt-Advanced-Docking-System

感兴趣的朋友可以学习一下,研究研究其框架结构以及具体的实现细节。

QtFlex5

进入上述地址,下载 QtFlex5 并解压缩,目录结构如下所示:

打开 QtFlex.pro,如果直接编译,会出现以下错误:

要解决这个问题,需要将 src.pro 中包含的路径修改为自己的 Qt 路径,例如:

INCLUDEPATH += "C:/SoftWare/Qt/Qt5.12.3/5.12.3/msvc2017_64/include/QtCore/5.12.3"
INCLUDEPATH += "C:/SoftWare/Qt/Qt5.12.3/5.12.3/msvc2017_64/include/QtGui/5.12.3"
INCLUDEPATH += "C:/SoftWare/Qt/Qt5.12.3/5.12.3/msvc2017_64/include/QtGui/5.12.3/QtGui"
INCLUDEPATH += "C:/SoftWare/Qt/Qt5.12.3/5.12.3/msvc2017_64/include/QtWidgets/5.12.3"
INCLUDEPATH += "C:/SoftWare/Qt/Qt5.12.3/5.12.3/msvc2017_64/include/QtWidgets/5.12.3/QtWidgets"

完成之后,重新编译,运行效果如下:

Qt-Advanced-Docking-System

同上,下载 Qt-Advanced-Docking-System 并解压缩,目录结构如下所示:

打开 build.pro,进行编译(一次性成功),直接运行,效果如下:

一较高下

  • 跨平台特性:QtFlex5 只能运行在 Windows 中,而 Qt-Advanced-Docking-System 在 Windows 和 Linux 平台上都可以运行(Mac 未测 - 穷)。

  • 功能比较:均可以浮动、停靠,改变窗体位置,显示浮动十字,并能够保存上次的窗口状态。

  • 样式风格:QtFlex5 更炫酷一些,而 Qt-Advanced-Docking-System 更传统一些。

  • ......

其实,这两个都有一些 Bug。但相比之下,Qt-Advanced-Docking-System 更稳定一点,这已经被我用于正式项目中了,效果很不错!

GitHub开源推荐 | VS炫酷Dock相关推荐

  1. GitHub开源推荐 | 炫酷的Material风格Qt控件

    作者: 一去.二三里 个人微信号: iwaleon 微信公众号: 高效程序员 Google 推出的 Material Design,无论是视觉效果还是交互体验都很棒,我们平时在上网时,在绝大多数的网页 ...

  2. 立创开源 51编程炫酷心形流水灯

    随着AI人工智能和物联网的兴起下一个信息革命即将到来,信息时代的AI和物联网无意识地扩散到生产和生活各个领域.物联网是用于扩展通信网络和互联网的应用程序.使用传感技术和智能设备来感知和控制物理世界.它 ...

  3. [开源项目]Android_炫酷的3D音乐播放器_各种特效OpenGL

    这是 我见过最炫的一个音乐播放器了.里面包含各种特效OpenGL,先上图片...看看大家的反应. 3Dmusic3.png(48.63 KB, 下载次数: 34) 炫酷的3D音乐播放器_各种特效Ope ...

  4. github开源推荐:SuperSocket, 可扩展的 Socket 服务器框架

    1.简介 SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket ...

  5. Github Page+Hexo搭建炫酷个人博客(主题优化基础篇)

    上一篇已经把博客搭建好了,这一篇来进行博客的主题优化讲解. 文章目录 配置博客信息 安装主题 配置主题 Scheme 设置菜单 设置侧栏 设置头像(旋转效果) 设置RSS 新建页面 设置代码高亮主题 ...

  6. 推荐:炫酷菜单弹射动画:SDiffuseMenu(AwesomeMenu)

    更新的文章及版本见 https://github.com/mythkiven/DiffuseMenu_Swift 本动画是 Swift 版的 AwesomeMenu,如需OC版还请移步这里. pod ...

  7. 用python画的炫酷图形_推荐一个炫酷Python 手绘图形库

    https://github.com/chenjiandongx/cutecharts 今天,给大家介绍一个很酷的 Python 手绘风格可视化神包:cutecharts.和 Matplotlib . ...

  8. 秒建炫酷的开源项目文档,这款神器用起来够优雅

    学习过我的开源项目mall的朋友应该知道,我有一个使用Docsify 搭建的项目文档网站.使用Docsify搭建文档网站虽然简单,但是缺少分类.标签.SEO这类功能,随着文档越来越多,查找起来有点不方 ...

  9. 从一个技术人的炫酷简历,聊聊我公司的技术栈

    [回复"1024",送你一个特别推送] 经常看我文章的读者都知道,我创业了,关于我创业的情况,我在公众号上也很少提,因为我个人感觉没什么好提的,所以写的也少.其实,我一直也想找机会 ...

最新文章

  1. 用NumPy genfromtxt导入数据
  2. 怎么在python下载网站内容-Python下载网页的几种方法
  3. oracle resetlogs 误删,oracle undo表空间误删恢复
  4. ModelSim 使用笔记1
  5. WBOLT 搜索推送管理插件(原百度推送管理插件) 3.4.11 Pro
  6. 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT
  7. TIOBE 2 月编程语言排行榜:VB 又有人要了,Go 一直在跌!
  8. Cocos2d-X开发中国象棋《三》開始场景的实现
  9. -webkit-text-size-adjust
  10. Elastic search相关
  11. Java之拦截器与过滤器
  12. PHP发币,处理货币价值的PHP库
  13. 关于el-dialog取消事件
  14. 以下7种硬件测试的种类,不知道的赶紧收藏了!
  15. 【数字IC/FPFA】时序约束--时钟约束
  16. 无法打开虚拟机“Ubuntu”,ubuntu.vmx获得所有权失败
  17. win10亮度无法调整(Win10无法调节亮度)
  18. 单源最短路径: 差分约束和最短路径
  19. python将文字转换成数字类型
  20. netty对http协议解析原理解析

热门文章

  1. Modbus转Profinet网关连接丹佛斯变频器配置案例
  2. lenovo微型计算机c320拆机,lenovo c4030一体机怎么拆机添加内存条?
  3. uniapp 小程序uni.getLocation()不能返回中文地理位置
  4. 阿里云建站云企业官网标准版、高级版和尊贵版区别对比表
  5. 数据还原linux,Linux系统数据恢复专业工具详解
  6. 用html语言做坦克大战
  7. Linux-USB驱动笔记(七)--设备控制器(UDC)驱动
  8. 基于深度摄像头的yolov4算法应用 (Realsense D435i)python
  9. 人工智能:数学基础视频教程-陆永剑-专题视频课程
  10. influxdb客户端简单使用