![ukraine](doc/ukraine.jpg)
![logo](doc/ads_logo.svg)
------------------
[![Build status](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/workflows/linux-builds/badge.svg)](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/actions?query=workflow%3Alinux-builds)
[![Build status](https://ci.appveyor.com/api/projects/status/qcfb3cy932jw9mpy/branch/master?svg=true)](https://ci.appveyor.com/project/githubuser0xFFFF/qt-advanced-docking-system/branch/master)
[![License: LGPL v2.1](https://img.shields.io/badge/License-LGPL%20v2.1-blue.svg)](gnu-lgpl-v2.1.md)
[What's new](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/latest)
[Documentation](doc/user-guide.md)
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.
[![Video Advanced Docking](doc/advanced-docking_video.png)](https://www.youtube.com/watch?v=7pdNfafg3Qc)
## New and Noteworthy
The [release 3.8](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/latest)
adds the following features:
- option to close tabs with the middle mouse button
- `DeleteContentOnClose` flag for dynamic deletion and creation of dock widget
content
The [release 3.7](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.7.2)
adds the following features:
- support for **Qt6.**
- support for [empty dock area](doc/user-guide.md#empty-dock-area)
The [release 3.6](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.6.3)
adds some nice new features:
- support for [central widget](doc/user-guide.md#central-widget) concept
![Central Widget](doc/central_widget.gif)
- support for [native floating widgets](doc/user-guide.md#floatingcontainerforcenativetitlebar-linux-only) on Linux
![FloatingContainerForceNativeTitleBar true](doc/cfg_flag_FloatingContainerForceNativeTitleBar_true.png)
Both features are contributions from ADS users. Read the [documentation](doc/user-guide.md)
to learn more about both new features.
The [release 3.5](https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/releases/tag/3.5.0)
adds the new [focus highlighting](doc/user-guide.md#focushighlighting) feature.
This optional feature enables highlighting of the focused dock widget like you
know it from Visual Studio.
![FocusHighlighting](doc/cfg_flag_FocusHighlighting.gif)
[learn more...](doc/user-guide.md#focushighlighting)
## Features
### Overview
- [New and Noteworthy](#new-and-noteworthy)
- [Features](#features)
- [Overview](#overview)
- [Docking everywhere - no central widget](#docking-everywhere---no-central-widget)
- [Docking inside floating windows](#docking-inside-floating-windows)
- [Grouped dragging](#grouped-dragging)
- [Perspectives for fast switching of the complete main window layout](#perspectives-for-fast-switching-of-the-complete-main-window-layout)
- [Opaque and non-opaque splitter resizing](#opaque-and-non-opaque-splitter-resizing)
- [Opaque and non-opaque undocking](#opaque-and-non-opaque-undocking)
- [Tab-menu for easy handling of many tabbed dock widgets](#tab-menu-for-easy-handling-of-many-tabbed-dock-widgets)
- [Many different ways to detach dock widgets](#many-different-ways-to-detach-dock-widgets)
- [Supports deletion of dynamically created dock widgets](#supports-deletion-of-dynamically-created-dock-widgets)
- [Python PyQt5 Bindings](#python-pyqt5-bindings)
- [Tested Compatible Environments](#tested-compatible-environments)
- [Supported Qt Versions](#supported-qt-versions)
- [Windows](#windows)
- [macOS](#macos)
- [Linux](#linux)
- [Build](#build)
- [Getting started / Example](#getting-started--example)
- [Developers](#developers)
- [License information](#license-information)
- [Alternative Docking System Implementations](#alternative-docking-system-implementations)
- [KDDockWidgets](#kddockwidgets)
- [QtitanDocking](#qtitandocking)
- [Donation](#donation)
- [Showcase](#showcase)
- [Qt Creator IDE](#qt-creator-ide)
- [Qt Design Studio](#qt-design-studio)
- [CETONI Elements](#cetoni-elements)
- [ezEditor](#ezeditor)
- [D-Tect X](#d-tect-x)
- [HiveWE](#hivewe)
- [Ramses Composer](#ramses-composer)
- [Plot Juggler](#plot-juggler)
- [Notepad Next](#notepad-next)
### Docking everywhere - no central widget
There is no central widget like in the Qt docking system. You can dock on every
border of the main window or you can dock into each dock area - so you are
free to dock almost everywhere.
![Dropping widgets](doc/preview-dragndrop.png)
![Dropping widgets](doc/preview-dragndrop_dark.png)
### Docking inside floating windows
There is no difference between the main window and a floating window. Docking
into floating windows is supported.
![Docking inside floating windows](doc/floating-widget-dragndrop.png)
![Docking inside floating windows](doc/floating-widget-dragndrop_dark.png)
### Grouped dragging
When dragging the titlebar of a dock, all the tabs that are tabbed with it are
going to be dragged. So you can move complete groups of tabbed widgets into
a floating widget or from one dock area to another one.
![Grouped dragging](doc/grouped-dragging.gif)
![Grouped dragging](doc/grouped-dragging_dark.png)
### Perspectives for fast switching of the complete main window layout
A perspective defines the set and layout of dock windows in the main
window. You can save the current layout of the dockmanager into a named
perspective to make your own custom perspective. Later you can simply
select a perspective from the perspective list to quickly switch the complete
main window layout.
![Perspective](doc/perspectives.gif)
![Perspective](doc/perspectives_dark.png)
### Opaque and non-opaque splitter resizing
The advanced docking system uses standard QSplitters as resize separators and thus supports opaque and non-opaque resizing functionality of QSplitter. In some rare cases, for very complex widgets or on slow machines resizing via separator on the fly may cause flicking and glaring of rendered content inside a widget. The global dock manager flag `OpaqueSplitterResize` configures the resizing behaviour of the splitters. If this flag is set, then widgets are resized dynamically (opaquely) while interactively moving the splitters.
![Opaque resizing](doc/opaque_resizing.gif)
If this flag is cleared, the widget resizing is deferred until the mouse button is released - this is some kind of lazy resizing separator.
![Non-opaque resizing](doc/non_opaque_resizing.gif)
### Opaque and non-opaque undocking
By default, opaque undocking is active. That means, as soon as you drag a dock widget or a dock area with a number of dock widgets it will be undocked and moved into a floating widget and then the floating widget will be dragged around. That means undocking will take place immediatelly. You can compare this with opaque splitter resizing. If the flag `OpaqueUndocking` is cleared, then non-opaque undocking is active. In this mode, undocking is more like a standard drag and drop operation. That means, the dragged dock widget or dock area is not undocked immediatelly. Instead, a drag preview widget is created and dragged around to indicate the future position of the dock widget or dock area. The actual dock operation is only executed when the mouse button is released. That makes it possible, to cancel an active drag operation with the escape key.
The drag preview widget can be configured by a number of global dock manager flags:
- `DragPreviewIsDynamic`: if this flag is enabled, the preview will be adjusted dynamically to the drop area
- `DragPreviewShowsContentPixmap`: the created drag preview window shows a static copy of the content
没有合适的资源?快使用搜索试试~ 我知道了~
QT- dock widget
共545个文件
o:111个
cpp:101个
h:66个
需积分: 0 0 下载量 65 浏览量
2023-05-13
10:54:37
上传
评论
收藏 40.11MB ZIP 举报
温馨提示
Issue #2: If the first drop is not into CenterDropArea, the application crashes.
资源推荐
资源详情
资源评论
收起资源包目录
QT- dock widget (545个子文件)
libqtadvanceddocking.a 419KB
libAdvancedDockingSystem1.a 123KB
.astylerc 156B
setup.cfg 134B
GetGitRevisionDescription.cmake 5KB
adsConfig.cmake 260B
qtadvanceddockingConfig.cmake 87B
qrc_ads.cpp 260KB
qrc_demo.cpp 128KB
DockContainerWidget.cpp 55KB
FloatingDockContainer.cpp 39KB
DockManager.cpp 34KB
ContainerWidget.cpp 33KB
MainWindow.cpp 30KB
DockAreaWidget.cpp 27KB
DockWidget.cpp 25KB
qrc_ads.cpp 24KB
DockOverlay.cpp 24KB
DockWidgetTab.cpp 21KB
DockAreaTitleBar.cpp 19KB
moc_DockManager.cpp 16KB
moc_DockAreaTabBar.cpp 12KB
DockAreaTabBar.cpp 12KB
SectionWidget.cpp 12KB
ads_globals.cpp 12KB
FloatingDragPreview.cpp 12KB
moc_dockindockmanager.cpp 12KB
DropOverlay.cpp 11KB
DockFocusController.cpp 11KB
moc_DockWidget.cpp 10KB
Serialization.cpp 10KB
moc_DockWidgetTab.cpp 10KB
dockindockmanager.cpp 9KB
perspectives.cpp 9KB
dockindock.cpp 9KB
FloatingWidgetTitleBar.cpp 9KB
SectionTitleWidget.cpp 8KB
moc_DockAreaWidget.cpp 8KB
moc_DockOverlay.cpp 8KB
mainwindow.cpp 8KB
moc_ContainerWidget.cpp 7KB
moc_ContainerWidget.cpp 7KB
moc_perspectiveactions.cpp 7KB
moc_DockFocusController.cpp 6KB
moc_SectionTitleWidget.cpp 6KB
moc_SectionTitleWidget.cpp 6KB
ElidingLabel.cpp 6KB
moc_DockContainerWidget.cpp 6KB
moc_DockAreaTitleBar.cpp 6KB
moc_MainWindow.cpp 6KB
moc_perspectives.cpp 5KB
moc_ElidingLabel.cpp 5KB
moc_DockAreaTitleBar_p.cpp 5KB
moc_DropOverlay.cpp 5KB
moc_DropOverlay.cpp 5KB
moc_FloatingDragPreview.cpp 5KB
mainwindow.cpp 5KB
moc_mainwindow.cpp 5KB
mainwindow.cpp 5KB
moc_SectionWidget.cpp 5KB
moc_SectionWidget.cpp 5KB
moc_FloatingDockContainer.cpp 4KB
moc_icontitlewidget.cpp 4KB
moc_dockindock.cpp 4KB
moc_SectionContentListWidget.cpp 4KB
moc_StatusDialog.cpp 4KB
moc_FloatingWidget.cpp 4KB
moc_FloatingWidget.cpp 4KB
moc_MainWindow.cpp 4KB
moc_mainwindow.cpp 3KB
moc_mainwindow.cpp 3KB
DockSplitter.cpp 3KB
moc_TestCore.cpp 3KB
main.cpp 3KB
moc_SectionContentWidget.cpp 3KB
moc_SectionContentListModel.cpp 3KB
moc_SectionContentWidget.cpp 3KB
StatusDialog.cpp 3KB
moc_DockSplitter.cpp 3KB
moc_MainWindow.cpp 3KB
moc_MainWindow.cpp 3KB
moc_mainframe.cpp 3KB
mainframe.cpp 3KB
FloatingWidget.cpp 2KB
MainWindow.cpp 2KB
SectionContent.cpp 2KB
API.cpp 2KB
SectionContentListModel.cpp 2KB
DockComponentsFactory.cpp 2KB
MainWindow.cpp 2KB
main.cpp 2KB
IconProvider.cpp 2KB
TestCore.cpp 2KB
icontitlewidget.cpp 1KB
MainWindow.cpp 1KB
perspectiveactions.cpp 1KB
DockingStateReader.cpp 996B
SectionContentListWidget.cpp 883B
main.cpp 546B
SectionContentWidget.cpp 520B
共 545 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
Lo_1558_ve
- 粉丝: 0
- 资源: 30
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 蓝zapro.apk
- chromedriver-linux64.zip
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- html动态爱心代码一(附源码)
- c40539bc-071a-486c-9d52-9d0c18d62dac 4.html
- 基于物理的非视域成像(NLOS)算法,利用了nerf+python源码+文档说明
- yuluer知更鸟.7z(1).001
- python课程设计-基于tensorflow实现的图文生成程序,数据集flickr30k-images+源代码+文档说明+截图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功