直译一下 : 先进的停靠系统
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