All Projects → KestrelRadarSensors → dockingpanes

KestrelRadarSensors / dockingpanes

Licence: GPL-3.0 license
A Visual Studio style docking windows library for Qt Widgets based applications

Programming Languages

C++
36643 projects - #6 most used programming language
QMake
1090 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to dockingpanes

Qt-Advanced-Docking-System
Advanced Docking System for Qt
Stars: ✭ 909 (+1648.08%)
Mutual labels:  qt5, docking, docking-library, docking-framework
dockview
Zero dependency layout manager and builder with ReactJS support
Stars: ✭ 45 (-13.46%)
Mutual labels:  docking, docking-library, docking-layout
JKQtExtras
a collection of different Qt4 & Qt5 widgets, I developed over the years
Stars: ✭ 34 (-34.62%)
Mutual labels:  qt5, qt-widgets
qaccordion
An Accordion Widget for the Qt application framework
Stars: ✭ 38 (-26.92%)
Mutual labels:  qt5, qt-widgets
Krypton-Toolkit-Suite-NET-Core
A update to Component factory's krypton toolkit to support .NET Framework 3.5 to .NET Core
Stars: ✭ 27 (-48.08%)
Mutual labels:  visual-studio, docking
Boomerang
Boomerang Decompiler - Fighting the code-rot :)
Stars: ✭ 265 (+409.62%)
Mutual labels:  visual-studio, qt5
Standard-Toolkit
An update to Component factory's krypton toolkit to support .NET Framework 4.6.2 - 4.8.1 to .NET Core/.NET
Stars: ✭ 194 (+273.08%)
Mutual labels:  visual-studio, docking
meta-qt5-extra
OE layer for desktop environments based on Qt5 (KDE KF5+Plasma+Apps / lirios / lxqt / lumina)
Stars: ✭ 28 (-46.15%)
Mutual labels:  qt5
RDO.Net
Relational Data Objects for .Net
Stars: ✭ 23 (-55.77%)
Mutual labels:  visual-studio
CatLearnQt
CatLearnQt,提供QWidget,Quick,网络,串口,基础库和示例。案例软件支持样式切换,与国际化。
Stars: ✭ 63 (+21.15%)
Mutual labels:  qt5
vs-material-icons-generator
This plugin will help you to set material design icons to your Xamarin projects In Visual Studio.
Stars: ✭ 50 (-3.85%)
Mutual labels:  visual-studio
EEIoT
QML IoT components, for fast and super user friendly IoT projects
Stars: ✭ 38 (-26.92%)
Mutual labels:  qt5
NativeFX
Native Rendering integration for JavaFX (13 and beyond)
Stars: ✭ 125 (+140.38%)
Mutual labels:  qt5
emplea do
Open source tech jobs portal. Made with .Net Core
Stars: ✭ 75 (+44.23%)
Mutual labels:  visual-studio
botsfromzerotohero
This repository contains all the code samples of "Developing Intelligent Bots from Zero to Hero" channel9/MVA course.
Stars: ✭ 14 (-73.08%)
Mutual labels:  visual-studio
qt5-kobo-platform-plugin
A Qt5 platform backend plugin for Kobo E-Ink devices.
Stars: ✭ 19 (-63.46%)
Mutual labels:  qt5
libQuotient
A Qt5 library to write cross-platform clients for Matrix
Stars: ✭ 101 (+94.23%)
Mutual labels:  qt5
osmapy
Osmapy - Python Editor for OpenStreetMap
Stars: ✭ 22 (-57.69%)
Mutual labels:  qt5
imgui
Dear ImGui Addons Branch = plain unmodified dear imgui plus some extra addon.
Stars: ✭ 348 (+569.23%)
Mutual labels:  docking
crynn
3D Game Engine Created In C++ & OpenGL
Stars: ✭ 45 (-13.46%)
Mutual labels:  visual-studio

DockingPanes

DockingPanes is a library for Qt Widgets that implements docking windows that have the look and feel of Visual Studio. It provides a simple API which allows an application to make use of docking windows with a few calls.

Docking panes example

Features

  • Provides a central widget area for your main application windows.
  • Allows docking windows to be docked in any position around the central widget.
  • Allows docking windows to be docked in a tabbed "pane" to maximise space available for the central widget.
  • Allows docking window panes to be collapsed into a button to the top, left, right or bottom of the central widget depending on the position of the docking window in the hierarchy. A fly-out mechanism allows the windows to be access by hovering over the button.
  • Positions of windows can be stored to a variable or file which allows different configurations of windows per application context to be used and saved and restored across application runs.

Compatability

The library has only been tested under windows and may require tweaking of drawing for other platforms, however, there is no platform specific code.

Compiling

qmake

A qmake project file is provided to build the library, this allows the library to be build either inside QtCreator by opening the project or by using qmake from the command line and building native files for your build system.

Debug builds of the library are suffixed with a per platform string to allow debug and release builds to exist side by side.

cmake

A CMakeLists.txt file is provided on the root folder. The current options supported are:

  • -DBUILD_SHARED_LIBS: If ON, then the result will be a shared lib (*.so/*.dll file). If OFF, the result will be a static lib (*.a/*.lib file). By default is ON.
  • -DBUILD_EXAMPLES: If ON, It will build the applications inside examples folder. By default is ON.

Example:

cd _build/
cmake -DCMAKE_INSTALL_PREFIX=/your/desired/location -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j<number_of_cores>
cmake --install .

Then, the directory /your/desired/location will be (on linux):

.
├── bin
│   └── simple
├── include
│   └── dockingpanes
│       └── DockingPaneManager.h
└── lib
    ├── libdockingpanes.so -> libdockingpanes.so.1
    ├── libdockingpanes.so.1 -> libdockingpanes.so.1.0.0
    └── libdockingpanes.so.1.0.0

Documentation

The API is designed to be simple to use and as such there is currently no documentation available. The DockingManager class contains the most useful calls.

We will add doxygen documentation as and when we are able to, however this is not a high priority.

Usage

The following is a short basic example of initialising the docking manager, creating a tool window and setting the central widget of the MainWindow to the docking manager widget.

auto centralWidget = new QLabel("Hello World");
auto dockingManager = new DockingPaneManager;

dockingManager->setClientWidget(centralWidget);

auto toolWindowWidget = new QLabel("Hola World");
auto initialSize = QSize(200,100);

auto dockingWindow = dockingManager->createPane("myPaneId", "Window Title", toolWindowWidget, initialSize, DockingManager::dockFloat, nullptr);

// the window is now created and managed by the docking manager.  The ToolWindow returned can be used with other API calls to open or close the window and other functions.

setCentralWidget(dockingManager->widget());

License

DockingPanes is licensed under the GPLv3 License, if you would like to use the library and this is not compatible then you should contact us to discuss options.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].