GitHub开源推荐 | VS炫酷Dock
Github 开源推荐
专注分享 GitHub 上有趣、好玩的开源项目,
以帮助大家提高编程技巧,找到编程乐趣。
如果你对开源感兴趣,想和大家分享一些优质项目,随时欢迎投稿(微信号:iwaleon)。
使用过 VS 的朋友,一定对 dock 不陌生,无论布局、停靠、还是拖拽都非常好用,
尤其是在功能较多,界面较复杂的程序中。
虽然 Qt 也有类似的功能(QDockWidget),但相对较弱。如果自己写的话,又得花很大精力(不建议造轮子)。因此呢,给大家分享两个不错的Github 开源项目:
https://github.com/JackyDing/QtFlex5
https://github.com/mfreiholz/Qt-Advanced-Docking-System
感兴趣的朋友可以学习一下,研究研究其框架结构以及具体的实现细节。
1
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"
完成之后,重新编译,运行效果如下:
2
Qt-Advanced-Docking-System
同上,下载 Qt-Advanced-Docking-System 并解压缩,目录结构如下所示:
打开 build.pro,进行编译(一次性成功),直接运行,效果如下:
3
一较高下
跨平台特性:QtFlex5 只能运行在 Windows 中,而 Qt-Advanced-Docking-System 在 Windows 和 Linux 平台上都可以运行(Mac 未测 - 穷)。
功能比较:均可以浮动、停靠,改变窗体位置,显示浮动十字,并能够保存上次的窗口状态。
样式风格:QtFlex5 更炫酷一些,而 Qt-Advanced-Docking-System 更传统一些。
......
其实,这两个都有一些 Bug。但相比之下,Qt-Advanced-Docking-System 更稳定一点,这已经被我用于正式项目中了,效果很不错!
·END·