作者: 一去、二三里
个人微信号: 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. Linux那些事儿 之 戏说USB(19)设备的生命线(二)
  2. muduo之BlockingQueue
  3. javascript 函数声明与函数表达式的区别
  4. 深入探讨傅立叶变换、拉普拉斯变换、Z变换的联系与应用
  5. ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
  6. 如何有效开展小组教学_高效课堂 有效教学 | 教育部专家到徐州市第三中学开展教研活动...
  7. pep8 python 编码规范_实用的python编码规范
  8. Python模块_re正则表达式模块-2
  9. 警惕Python编程中异常处理结构可能的坑
  10. platform设备的添加
  11. VISIO—如何打开?及安装教程
  12. 附全文 |《数字中国指数报告2019》重磅发布,下一个数字经济增长点将由产业驱动...
  13. Mysql导出表结构和数据
  14. 从零开始 DIY 智能家居 - 基于 ESP32 的智能语音合成播报模块
  15. 交通灯—VHDL设计
  16. ARM中C语言和汇编语言互相调用以及实例
  17. 基于视觉导航的自主机器人简介(一)
  18. 2021-03-26:给定一个正整数N,表示有N份青草统一堆放在仓库里。有一只牛和一只羊,牛先吃,羊后吃,它俩轮流吃草。 不管是牛还是羊,每一轮能吃的草量必须是:1,4,16,64…(4的某次方)。谁
  19. 网络测试软件smartest,AGILENT-93K的混合信号测试解决方案
  20. 程序员摘镜指南:近视手术能不能做?怎么做?

热门文章

  1. vue引用QrCode生成二维码
  2. Python学习-乘法操作:点乘和叉乘
  3. 数据结果出来了!公众号批量伪原创文章群发霸屏与公众号排名被动引流
  4. (实验文档和源码)一次从数据采集到实验分析的完整脑电情绪识别
  5. [MySQL] alter table 增加、删除、修改字段类型
  6. cocos creator 微信小游戏 子域分辨率、错位等问题
  7. PCB孔铜厚度标准及成品铜厚构成、由来
  8. 服务器声卡图标显示x,电脑声音图标显示红叉【设置模式】
  9. 激光测距的原理与应用
  10. 1069 微博转发抽奖 (20 分)