直譯一下 :?先進的停靠系統
github:
mfreiholz/Qt-Advanced-Docking-System: Advanced Docking System for Qt
這是這個項目的起源
這個最后一次更新:
githubuser0xFFFF/Qt-Advanced-Docking-System: Advanced Docking System for Qt
這是另一個人復刻了一份,算是重新維護這個項目。(1519次提交? ? ? ? 119次提交)
看了下,這個老哥還有個項目好像也不錯。
githubuser0xFFFF/Qt-Advanced-Stylesheets: Advanced Stylesheets with Theming Support for Qt
Qt-Advanced-Docking-System最新發行版是v4.4.0
簡介:
Qt Advanced Docking System lets you create customizable layouts using a full featured window docking system similar to what is found in many popular integrated development environments (IDEs) such as Visual Studio.
Qt 高級停靠系統讓您能夠使用功能齊全的窗口停靠系統創建可自定義的布局,該系統類似于許多流行的集成開發環境(IDE)(如 Visual Studio)中所采用的系統。
文檔:
User Guide | Qt-Advanced-Docking-System
看起來還挺好的
示例程序的演示視頻:
CETONI Elements Advanced Docking System
在 Linux 系統上使用 ADS 支持的發行版
不幸的是,并不存在所謂的“Linux 操作系統”。Linux 是一個由多種不同發行版組成的異構環境。
因此,無法像支持 Windows 那樣支持“Linux”。只能支持并測試一小部分 Linux 發行版。該庫可以針對某些 Linux 發行版進行編譯,并且已經針對這些發行版進行了開發和測試。根據所使用的窗口管理器或合成器,帶有原生標題欄的圖標欄是支持的或不支持的。如果原生標題欄不被支持,該庫則會切換到基于 Qwidget 的標題欄。
Kubuntu 18.04 和 19.10 版本 - 使用 KWin 系統 - 無原生標題欄
Ubuntu 18.04、19.10 和 20.04 版本 - 支持原生標題欄功能
Ubuntu 22.04 - 使用 Wayland 系統 -> 不具備原生標題欄
要求/條件
對于 Linux 系統的安裝,有一些必須滿足的條件:
一個支持 ARGB 視圖格式以及復合窗口管理器的 X 服務器。這是為了能夠顯示半透明的桌面托盤覆蓋層(https://doc.qt.io/qt-5/qwidget.html#creating-translucent-windows)所必需的。如果您的 Linux 發行版不支持此功能,或者您已禁用了此功能,那么您很可能會遇到問題 #95。
Wayland 目前尚未得到 Qt 的充分支持。如果您使用 Wayland,那么您應該將會話類型設置為 XDG_SESSION_TYPE=x11 ./AdvancedDockingSystemDemo。您可以在第 288 號問題中找到有關此內容的更多詳細信息。
Tested Compatible Environments
已測試兼容的環境
支持的 Qt 版本
該庫支持 Qt5 和 Qt6 版本。
它被用于一款商業化的 Windows 應用程序中,因此會不斷接受測試。
commercial : 商業的
構建 (Build)??
Linux 構建需要私有頭文件 (private header files
)。請確保已安裝這些文件。該庫使用 SVG 圖標,因此請確保安裝了 Qt 的 SVG 支持。演示應用程序會創建一個 ??QQuickWidget?? 用于測試,因此請確保安裝了所需的庫。
??在 Ubuntu 18.04 或 20.04 上安裝 Qt5??
sudo apt install qt5-default qtbase5-private-dev
??在 Ubuntu 22.04 上安裝 Qt5??
sudo apt install qtbase5-dev qtbase5-private-dev qtbase5-dev-tools libqt5svg5 libqt5qml5 qtdeclarative5-dev
??在 Ubuntu 22.04 上安裝 Qt6??
sudo apt install qt6-default qt6-base-dev qt6-base-private-dev qt6-tools-dev libqt6svg6 qt6-qtdeclarative
?
用 Qt Creator 打開?ads.pro
文件并開始構建即可。您可以運行演示項目并自行測試。
測試:
編譯了一下:
Windows11? ? ? ? Qt庫的版本:6.5.3
可替代的停靠系統實現
如果此 Qt 高級停靠系統 (Qt Advanced Docking System) 不能滿足您的需求,您可以考慮以下 Qt 的其他替代停靠系統解決方案。
??KDDockWidgets??
這是來自 KDAB 的 Qt 高級停靠框架。其有趣之處在于,他們將 GUI 代碼與邏輯分離,因此未來能夠輕松提供 QtQuick 后端支持。
??許可 (License)??: 雙許可 (dual-licensed),提供商業許可和 GPL 許可。
官網:
Leading Expertise in Desktop and Embedded Software using Qt, C++, Rust and modern UI frameworks | KDAB
介紹:
Introducing KDDockWidgets - An advanced docking framework for Qt | KDAB
GitHub:
KDAB/KDDockWidgets: KDAB's Dock Widget Framework for Qt
??QtitanDocking??
這是來自 Developer Machines 的商業 Qt 框架組件,可用于創建類似微軟 (Microsoft) 的可停靠用戶界面。他們還提供許多其他有趣且實用的 Qt 組件。該庫可在以下位置獲取:
??許可 (License)??: 商業許可 (Commercial license)
官網:
Developer Machines - Quality components for software Developers
產品界面:
Developer Machines - Quality components for software Developers
??DockingPanes??
DockingPanes 是一個面向 Qt Widgets 的庫,它實現了具有 Visual Studio 外觀和體驗感的停靠窗口。它提供了一個簡單的 API,允許應用程序通過少量調用即可使用停靠窗口。
-
GitHub 項目?KestrelRadarSensors/dockingpanes: A Visual Studio style docking windows library for Qt Widgets based applications
??許可 (License)??: GPL