KDDockWidgets源码编译及安装
簡(jiǎn)介
KDDockWidgets 是由 KDAB(官網(wǎng)) 編寫的 Qt Dock 小部件庫(kù),適用于替換 QDockWidget和實(shí)現(xiàn) Qt 中缺少的高級(jí)功能。
功能特點(diǎn):
- 提供 QDockWidget 不支持的高級(jí)對(duì)接
- 在 Windows 上調(diào)整本機(jī)窗口大小(即使使用自定義標(biāo)題欄裝飾也允許 Aero-snap)
- 箭頭下降指示器可實(shí)現(xiàn)出色的下降精度
- 允許完全不同的、用戶提供的、丟棄指示器類型
- 在浮動(dòng)窗口中嵌套停靠小部件并將該組停靠回主窗口
- 停靠到任何主窗口,而不僅僅是父主窗口
- 停靠到主窗口的中心,或者干脆去掉“中央小部件”的概念
- 主窗口支持中心小部件中的可拆卸選項(xiàng)卡
- 將標(biāo)簽欄中的任意標(biāo)簽分離到停靠區(qū)域
- 支持1個(gè)以上主窗口
- 支持關(guān)聯(lián),使一些停靠小部件只能停靠在某些主窗口上
- 允許隱藏標(biāo)題欄并只顯示選項(xiàng)卡。允許通過標(biāo)簽欄拖動(dòng)。
- 公開內(nèi)部助手小部件,以便用戶可以自定義它們或提供他自己的
- 自定義選項(xiàng)卡小部件
- 自定義標(biāo)題欄
- 自定義窗框
- 自定義小部件分隔符
- 跨平臺(tái)(macOS、Linux、Windows、WebAssembly、Wayland、X11/XCB、EGLFS 正在工作)有關(guān)平臺(tái)特定信息,請(qǐng)參閱 README-Wayland.md 和 README-WASM.md。
- 布局引擎遵守最小/最大尺寸限制和一些尺寸策略
- PySide2 綁定
- 干凈的代碼庫(kù)
- 不將 GUI 與狀態(tài)與邏輯與動(dòng)畫混合
- 強(qiáng)大的測(cè)試覆蓋率,甚至 GUI 和 DnD 操作都經(jīng)過測(cè)試。目前有 200 個(gè)測(cè)試。
- 用于進(jìn)行隨機(jī)測(cè)試和查找錯(cuò)誤的模糊器
- 延遲分隔符調(diào)整大小
- 用鼠標(biāo)重新排序標(biāo)簽
- 部分布局保存/恢復(fù),僅影響選定的子集
- 雙擊標(biāo)題欄最大化
- 雙擊分隔符以平均分配
- 在選項(xiàng)卡上顯示關(guān)閉按鈕
- 允許使停靠小部件不可關(guān)閉和/或不可停靠
- 標(biāo)題欄上可選的最小化和最大化按鈕
- FloatingWindows 可以是實(shí)用程序窗口或完全原生的
以上描述可以看到,KDDockWidgets的擴(kuò)展功能是非常豐富的,操作有點(diǎn)類似VS。
github地址:https://github.com/KDAB/KDDockWidgets
今天主要來介紹如何編譯源碼并安裝,然后運(yùn)行自帶的示例。我在這過程中遇到了很多坑,把整個(gè)過程記錄一下,以便他人參考。
編譯準(zhǔn)備
在編譯KDDockWidgets之前所需要做以下準(zhǔn)備:
- cmake,參考這里
- ninja,參考這里
- 編譯器,我這里使用VS2017進(jìn)行編譯,自行安裝
- Qt,KDDockWidgets 需要Qt >= 5.9(如果啟用 Python 綁定,則 >=5.12)。QtQuick 支持需要Qt >= 5.15。支持Qt 6
設(shè)置環(huán)境變量
注意,這一步非常關(guān)鍵,安裝完上面的軟件后必須要設(shè)置環(huán)境變量,否則在編譯KDDockWidgets時(shí)無法正確引用。
右鍵我的電腦打開屬性:
注意,如果想編譯32位,那么環(huán)境變量配置就統(tǒng)一設(shè)置x86的路徑,如果要編譯64位,則統(tǒng)一設(shè)置x64路徑,以下是配置32位的路徑:
新建系統(tǒng)變量LIB,添加VS相關(guān)的環(huán)境變量
新建系統(tǒng)變量INCLUDE
在PATH中添加 cmake、ninja、Qt、VS等環(huán)境變量
同理,如果是64位,那么配置x64的環(huán)境變量,如下:
注:以上是我電腦的路徑,根據(jù)自己的實(shí)際路徑進(jìn)行添加。
重點(diǎn):設(shè)置完環(huán)境變量后雙擊運(yùn)行一下這個(gè)腳本:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
或者如果設(shè)置32位,那就雙擊運(yùn)行vcvars32.bat
如果是64位,那就雙擊運(yùn)行vcvars64.bat
開始編譯
從github上下載源代碼到本地
打開CMD終端 將目錄切換到源碼目錄
然后輸入:cmake . -G Ninja
然后輸入:cmake --build . 等待編譯
執(zhí)行完后會(huì)在bin目錄下生成
這里編譯會(huì)將源代碼以及示例代碼一起編譯,在bin目錄下生成示例程序,雙擊即可打開體驗(yàn)。
最后執(zhí)行安裝命令:cmake --build . --target install
注意,這里只是編譯了debug版本的庫(kù),默認(rèn)會(huì)安裝到C盤:
可以通過將選項(xiàng)傳遞-DCMAKE_INSTALL_PREFIX=/install/path給 cmake來更改安裝位置
如:cmake -G Ninja -DCMAKE_INSTALL_PREFIX=xxx
根據(jù)官方提供的示例運(yùn)行,體驗(yàn)還不錯(cuò),功能比原生的QDockWidget更加豐富,若想在自己項(xiàng)目中使用KDDockWidgets,可以參照其示例進(jìn)行修改。
編譯KDDockWidgets Qt Quick示例
上面提到如果要使用Quick 那么Qt需要5.15版本以上,而且編譯時(shí)默認(rèn)關(guān)閉了編譯QtQuick,所以如果需要編譯運(yùn)行Quick示例的話,需要修改編譯文件,在根目錄下找到CMakeLists.txt文件并打開,然后找到
option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" OFF)將OFF改成ON即可
option(${PROJECT_NAME}_QTQUICK "Build for QtQuick instead of QtWidgets" ON)然后刪除之前的編譯生成文件,重新編譯源碼,就會(huì)在bin目錄下看到quick的示例:
可能會(huì)遇到的問題
以上步驟看起來很簡(jiǎn)單,但其實(shí)過程中遇到了很多的問題,主要都是環(huán)境變量引起的,比如:
還有其他lib引用錯(cuò)誤等,其實(shí)都是環(huán)境變量的原因?qū)е碌?#xff0c;如果要編譯32bit,那么所有的環(huán)境變量配置都需要32位的路徑,Qt也需要安裝32位的vs版本,64位同理,只要設(shè)置正確就不會(huì)有啥大問題了。
編譯release版本
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
$ cmake --build . --target install
注意,在重新編譯之前,需要將之前編譯生成的文件全部刪除后再編。
總結(jié)
以上是生活随笔為你收集整理的KDDockWidgets源码编译及安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【windows】python安装小结
- 下一篇: Qt5.15.2+VS2019安装小结