GitHub開(kāi)源推薦 | VS炫酷Dock

?Github 開(kāi)源推薦
專注分享 GitHub 上有趣、好玩的開(kāi)源項(xiàng)目,以幫助大家提高編程技巧,找到編程樂(lè)趣。
如果你對(duì)開(kāi)源感興趣,想和大家分享一些優(yōu)質(zhì)項(xiàng)目,隨時(shí)歡迎投稿(微信號(hào):iwaleon)。
使用過(guò) VS 的朋友,一定對(duì) dock 不陌生,無(wú)論布局、停靠、還是拖拽都非常好用,尤其是在功能較多,界面較復(fù)雜的程序中。
雖然 Qt 也有類似的功能(QDockWidget),但相對(duì)較弱。如果自己寫(xiě)的話,又得花很大精力(不建議造輪子)。因此呢,給大家分享兩個(gè)不錯(cuò)的Github 開(kāi)源項(xiàng)目:
https://github.com/JackyDing/QtFlex5
https://github.com/mfreiholz/Qt-Advanced-Docking-System
感興趣的朋友可以學(xué)習(xí)一下,研究研究其框架結(jié)構(gòu)以及具體的實(shí)現(xiàn)細(xì)節(jié)。
1
QtFlex5
進(jìn)入上述地址,下載 QtFlex5 并解壓縮,目錄結(jié)構(gòu)如下所示:

打開(kāi) QtFlex.pro,如果直接編譯,會(huì)出現(xiàn)以下錯(cuò)誤:

要解決這個(gè)問(wèn)題,需要將 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"
完成之后,重新編譯,運(yùn)行效果如下:

2
Qt-Advanced-Docking-System
同上,下載 Qt-Advanced-Docking-System 并解壓縮,目錄結(jié)構(gòu)如下所示:

打開(kāi) build.pro,進(jìn)行編譯(一次性成功),直接運(yùn)行,效果如下:

3
一較高下
跨平臺(tái)特性:QtFlex5 只能運(yùn)行在 Windows 中,而 Qt-Advanced-Docking-System 在 Windows 和 Linux 平臺(tái)上都可以運(yùn)行(Mac 未測(cè) - 窮)。
功能比較:均可以浮動(dòng)、???,改變窗體位置,顯示浮動(dòng)十字,并能夠保存上次的窗口狀態(tài)。
樣式風(fēng)格:QtFlex5 更炫酷一些,而 Qt-Advanced-Docking-System 更傳統(tǒng)一些。
......
其實(shí),這兩個(gè)都有一些 Bug。但相比之下,Qt-Advanced-Docking-System 更穩(wěn)定一點(diǎn),這已經(jīng)被我用于正式項(xiàng)目中了,效果很不錯(cuò)!
·END·

