Giter Club home page Giter Club logo

kddockwidgets's Introduction

KDDockWidgets

Build Status

KDDockWidgetsLogo

Our brand new manual is now the docs entry point for everything related to KDDockWidgets. This README only provides minimal information.





KDDockWidgets is a Qt dock widget library written by KDAB, suitable for replacing QDockWidget and implementing advanced functionalities missing in Qt.

Although KDDockWidgets is ready to be used out of the box, it can also be seen as a framework to allow building very tailored custom docking systems. It tries to expose every internal widget and every knob for the app developer to tune.

Features

  • Provide advanced docking that QDockWidget doesn't support
    • Native window resize on Windows (allowing for Aero-snap even with custom title bar decorations)
    • Arrow drop indicators for great drop precision
    • Allow for totally different, user provided, drop indicator types
    • Nesting dock widgets in a floating window and docking that group back to main window
    • Docking to any main window, not only to the parent main window
    • Docking to center of main window, or simply removing the concept of "central widget"
    • Main window supporting detachable tabs in center widget
    • Detaching arbitrary tabs from a tab bar into a dock area
    • Supporting more than 1 main window
    • Support for affinities, making some dock widgets only dockable on certain main windows
    • Allow to hide TitleBar and just show tabs. Allows dragging via the tab bar.
    • Exposing inner helper widgets so the user can customize them or provide his own
      • Customize tab widgets
      • Customize title bars
      • Customize window frames
      • Custom widget separators
  • Cross-platform (macOS, Linux, Windows, WebAssembly, Wayland, X11/XCB, EGLFS are working) See README-Wayland.md and README-WASM.md for platform specific information.
  • Layouting engine honouring min/max size constraints and some size policies
  • PySide2 bindings
  • Clean codebase
    • Not mixing GUI with state with logic with animations
    • Great test coverage, even the GUI and DnD operations are tested. 200 tests currently.
    • Fuzzer for doing random testing and finding bugs
  • Lazy separator resize
  • Reordering tabs with mouse
  • Partial layout save/restore, affecting only a chosen sub-set
  • Double click on title bar to maximize
  • Double click on separator to distribute equally
  • Show close button on tabs
  • Allow to make a dock widget non-closable and/or non-dockable
  • Optional minimize and maximize button on the title bar
  • FloatingWindows can be utility windows or full native

Screen capture

Screen capture

Licensing

KDDockWidgets is © Klarälvdalens Datakonsult AB (KDAB) and is licensed according to the terms of the GPL 2.0 or GPL 3.0.

Contact KDAB at [email protected] to inquire about commercial licensing.

About KDAB

KDDockWidgets is supported and maintained by Klarälvdalens Datakonsult AB (KDAB).

The KDAB Group is the global No.1 software consultancy for Qt, C++ and OpenGL applications across desktop, embedded and mobile platforms.

The KDAB Group provides consulting and mentoring for developing Qt applications from scratch and in porting from all popular and legacy frameworks to Qt. We continue to help develop parts of Qt and are one of the major contributors to the Qt Project. We can give advanced or standard trainings anywhere around the globe on Qt as well as C++, OpenGL, 3D and more.

Please visit https://www.kdab.com to meet the people who write code like this.

Stay up-to-date with KDAB product announcements:

kddockwidgets's People

Contributors

albert-astals-cid-kdab avatar alistair-baxter-kdab avatar amantia avatar bbc131 avatar bebuch avatar cogilvie avatar cschleifenbaum avatar dangelog avatar dantti avatar dfaure avatar dfaure-kdab avatar eism avatar ferdnyc avatar iamsergio avatar jacobly0 avatar jcelerier avatar jpatricer avatar kpales avatar krf avatar milianw avatar montel avatar mpersano avatar olafmandel avatar pre-commit-ci[bot] avatar redstrate avatar renatofilho avatar romanpudashkin avatar shaan7 avatar waqar144 avatar winterz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kddockwidgets's Issues

Build error at first step - target "kddockwidgets_multisplitter"

Download commit 180fb96

cd s:\KDDockWidgets-master
cmake -DCMAKE_INSTALL_PREFIX=S:\KDDockWidgets

ERROR:
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
CMake Error at src/CMakeLists.txt:157 (install):
install TARGETS given target "kddockwidgets_multisplitter" which does not
exist in this directory.

-- Configuring incomplete, errors occurred!
See also "S:/QT/KDDockWidgets-master/CMakeFiles/CMakeOutput.log".

Add option to not resize sibling widgets when docking

When docking widgets, KDDockWidgets resizes the entire container where the widget is going to go, resizing every widget in that container, seen here:
kddockwidgets_behavior

It would be nice to have an option to have dragged widgets split the area of the widget where it is being dragged on, without modifying any other widgets. The AdvancedDockingSystem repo does this:
ads_behavior

Module disco.cli

Traceback (most recent call last):
File "C:\Server\sborka\dcbot.py", line 1, in
from disco.cli import disco_main
ImportError: No module named disco.cli
[ERROR] Erro nas Portas server. Reiniciar servidor 3 seconds

Help, i try to install this module, but it gives an error.

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
ERROR: Could not find a version that satisfies the requirement disco.cli (from versions: none)
ERROR: No matching distribution found for disco.cli

QProperties in DockWidgetBase

Hi,
it would be great, if DockWidgetBase have QProperties. At the moment the class interface is not uniform. Example:
The focus has a Qt signal:
connect(dockWidget, &KDDockWidgets::DockWidget::isFocusedChanged, ui->isFocusCheckBox, &QCheckBox::setChecked);
But for floating I must use the corresponding QAction:
connect(dockWidget->floatAction(), &QAction::toggled, ui->isFloatingCheckBox, &QCheckBox::setChecked);

Here are some suggested QProperties:
image

Furthermore for using GammaRay all QProperties will be displayed:
image

Kind Regards,
Thomas

Bug in renaming Floating window Titlebar

Hello Sergio,

in the Dock Widget example program, once we drag out the docked widgets from the Floating window (technically not floating because it has multiple dock widgets with in), the window title is wrongly updated.
Attached gif is self explanatory.
FloatingWndBug

However this happens only for the first time, then on we get the correct name on the title bar.
Could you please fix this.

Kind Regards
Nandish

cmake requires pkg_config for Python bindings on WIN32

Following errors occurs while running cmake on Windows with -DOPTION_BUILD_PYTHON_BINDINGS=ON
The error is due to missing pkg_config

CMake Error at C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.17/Modules/FindPkgConfig.cmake:45 (find_package_handle_standard_args)
  cmake/Python/FindShiboken2.cmake:20 (find_package)
  python/CMakeLists.txt:14 (find_package)

The error is due to find_package(PkgConfig REQUIRED) line in the following cmake files:

  • KDDockWidgets/cmake/Python/FindPySide2.cmake
  • KDDockWidgets/cmake/Python/FindShiboken2.cmake

Both cmake files run happily when

find_package(PkgConfig REQUIRED)
pkg_check_modules(SHIBOKEN2_PRIV shiboken2 QUIET)

is replaced with:

if(NOT WIN32)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(SHIBOKEN2_PRIV shiboken2 QUIET)
endif()

So WIN32 specific logic is implemented in these files, but crash occurs due to pkg_config not found.

Suggested patch attached. Happy to submit a PR, if you think that's valid.
win32_cmake_files.patch.txt

Tested on:
Windows 10 version 1909 / CMake 3.17.0 / cl.exe 19.25.28611 (x64) / Qt 5.15.0

Thanks for creating Python bindings for KDDockWidgets!

Inform the underlaying widget if docked or floating state is entered

Hi,
we have widgets which will display different gui elements (e.g. toggle visiblity of a toolbar) depending if the dockwidget is docked or is a flaoting window.
It would be great if the underlaying widget will be informed if the dockwidget is docked or floating.
I have prepared two suggestions with connecting signal/slot:
image

Or do you have already a solution for this?
Greetings,
Thomas

Docking does not work

After installing the KDDockWidget library into my program and building the example project, neither allow docking
Programmatic docking is functional but the interface for docking floating windows nor the functionality itself works
I created a custom (*.pri) file in order to import the library as I have with my other libraries, rather than using the cmake implementation - I am unsure if this is the reason this is happening
https://streamable.com/ybnwt

IsDockedToMainWindow()

Hi Sergio,

could you please provide an interface like IsDockedToMainWindow() which informs if the dock widget is docked to mainWindow or if its docked to some other dock widget.
For example in the attach,
MainWindow

Dockwidget 1, 3,4,5,8 are docked to Mainwindow and should return true.

For example in attach
DockedInsideFloatingWindow

Dockwidget 0,3,4 are not docked to mainwindow and should return false.

Dockwidget->IsDockedToMainWindow().

I have a requirement to dock the widget or float depending on if the widget is docked to main window or not.

Kind Regards
Nandish

Move floating window before show does ignore pos

To reduce screen flickering I need to be able to set the position of a newly created floating dock widget before calling show / raise.

Currently this does not seem possible because the framework centers newly created floating widgets automatically.

Removable Title bar with docked Tab Widgets.

Hi,

we find that the title bar occupies so much space, specially when Docked and has more Tabs with in the dock widget. In our product we are trying to eliminate the title bar if the widget has more than one tab and is docked to another widget.
In the attach you shall find 3 different screen shots.
In MainWindow pic,
MainWindow we would want to remove titlebar dockwidget#4.
FloatingWindow

However we would like to keep the title bar if the widget is floating, as seen in FloatingWindow pic.

Would it be possible for you to provide such an option or interface.

Kind Regards
Nandish

Crash when quickly clicking on the "close widget".

Environment:
Windows 8 and 10;
Qt 5.12.3 and 5.12.4;
mingw (gcc 8.3) and MSVC 19.16;
Cmake 3.12.

Steps to reproduce:

  1. Open example application.
  2. Click as fast as you can on "close" at some dock widget.
  3. Do move action with another opened dock widget.

I assume that this crash happens when you have time to click twice or more on the "close" button.

crash3

Icons / pixmaps are not at the right size in hidpi screens

See attached image, with Qt Creator for reference

  • the buttons on docks are too big visually when comparing to lodpi screens
  • they are pixelated
  • the central icons which appear when moving are also pixelated
  • the line under the tab seems to be missing
  • the tab icon is too large and pixelated

out12

Floating signal bug

Hello Sergio,

I added the below code
----------------------------MyWidget.cpp----------------------------
MyWidget::MyWidget(const QString &backgroundFile, const QString &logoFile, QWidget parent)
: QWidget(parent)
{
m_is_floating_checkbox = new QCheckBox(this);
m_label = new QLabel(this);
m_label->setStyleSheet("QLabel { background-color : orange; color : black; }");
m_label->setText("Floating");
QFont f( "Arial", 12, QFont::Bold);
m_label->setFont( f);
m_label->move(20,0);
....
....
....
}
void MyWidget::connectTo(KDDockWidgets::DockWidget
dock) {
connect(dock->floatAction(), &QAction::toggled, m_is_floating_checkbox, &QCheckBox::setChecked);
bool val = dock->floatAction()->isChecked();
m_is_floating_checkbox->setChecked(val);
}
----------------------------MyWidget.h----------------------------
class MyWidget : public QWidget
{
...
...
public:
void connectTo(KDDockWidgets::DockWidget* parent);
protected:
QCheckBox* m_is_floating_checkbox = nullptr;
QLabel* m_label = nullptr;
};
---------------------------MyMainWindow.cpp------------------------
MyMainWindow::MyMainWindow(.. ) {
...
...
connect(newAction, &QAction::triggered, this, [] {
static int count = 0;
count++;
auto w = newMyWidget();
w->setGeometry(100, 100, 400, 400);
auto dock = new KDDockWidgets::DockWidget(QStringLiteral("new dock %1").arg(count));
dock->setWidget(w);
w->connectTo(dock);
dock->resize(600, 600);
dock->show();
});
}
KDDockWidgets::DockWidgetBase *MyMainWindow::newDockWidget()
{
....
....
myWidget->connectTo(dock);
count++;
return dock;
}

To simplify, i have added a checkbox which will be checked if the window is floating. But in the below gif, you can see that checkbox remains checked when dock widget is docked to another floating widget.

FloatingSignalBug

We do not see this issue when widgets are tabbed.
FloatingSignalBug2

If you need more information, please feel free to write back.

Kind Regards
Nandish

Missing forward headers

Hi,
I would like to extend the kddockwidgets_example with the KDDockWidgets::TabBar and KDDockWidgets::TabWidget. But the forward headers of TabBar and TabWidget are missing. A look into the fwd_headers folder there is only TitleBar:
image
And the FrameworkWidgetFactory have a lot of futher Widgets which can be reimplemented:
image
Please add the missing forward headers.

Furthermore the includes in MyFrameworkWidgetFactory are not needed, because of the forward decarations in kddockwidgets/FrameworkWidgetFactory.h.
image

Here is the example of the missing TabWidget header:
image

Do you need further information?
Kind Regards,
Thomas Lämmlein

Add lazy resized separator

In many cases resizing via separator on the fly causes flicking and glaring of rendered content inside a widget. It would be nice to have an option of lazy resizing separator to get a more pleasant user's perception.
lazy_sep

Crash when using the no titlebar option if trying to dock a new widget

Hi,

using the current master (14.Aug.2020) compiled with Qt5.15 VS2019 on Windows 10, if you start the examples with -t,
the application crashes when trying to dock a new window to the left dockable area.

I hope the following gif illustrates my problem:
kddw-crash

P.S.: no code changes where made.

Demo not showing close buttons on tabs

Even though the demo should have closable tabs, you can't close them in any way. There is no button on the tabs or a context menu on the tabs to close them. This is what I see:
image

Add icon to maximize/unmaximize docks

When a dock is extracted, it's possible to maximize it by double clicking on the title bar.

Add an icon to maximize/unmaximize in the titlebar, like on VS:
image
image

QT_BEGIN_NAMESPACE is missing

The QT_BEGIN_NAMESPACE and QT_END_NAMESPACE macros are missing. So the code currently will not compile for Qt5 Builds using a different Namespace.

No focus when widget docked to floating window

Hello Sergio,

When I dock a newdockwidget to another newdockwidget, exactly at this point none of the tab is active.
Please see the below gif.
DockingFocusBug

I expected the widget which i docked to have focus, but that is not the case.

Kind Regards
Nandish

It is possible to change the title bar color for toggle active state for a dock widget?

Hi,
my goal is to have a different title bar color if the dock widget is "active".
I (re)implemented the "MyTitleBar" in the kddockwidgets example:

void paintEvent(QPaintEvent*) override
	{
		QPainter p(this);
		QColor c = isActiveWindow() ? QColor("#F28D26") : Qt::gray;
		p.fillRect(rect(), c);
		p.drawText(rect().adjusted(5, 0, 0, 0), Qt::AlignLeading | Qt::AlignVCenter, title());
	}

But this is not right. It changes the title bar color if the whole window is active. I would like to change the color for dock widget.

The following animation shows that only the whole window is changing the color and not the dock widget.

active_dock_widget

In Visual Studio it is possible to change the "active" color of each docking window.
active_dock_widget_visual_studio

Greetings,
Thomas

use 'restoreLayout' to restore layout from file, resize again, error occurred!

Environment:
Windows 10;
Qt 5.12.6;
MSVC 2017 community;
Cmake 3.15.2.

here is my code:
@Code1

    KDDockWidgets::LayoutSaver saver;
if (true == saver.saveToDisk())
{
	auto arr = saver.serializeLayout();
	std::string s = saver.serializeLayout().toStdString();
	std::ofstream ofile(".\\layout.config", ios::out);
	if (ofile.is_open())
	{
		ofile << s;
		ofile.close();
	}
	saver.restoreLayout(arr);
}

// @Code1
@Code2

    std::ifstream ifile("layout.config", ios::in);
if (ifile.is_open())
{
	std::string temp, s;
	while (std::getline(ifile, temp))
	{
		s += temp;
		s += "\n";
	}
		
	QByteArray arr = QByteArray::fromStdString(s);
	KDDockWidgets::LayoutSaver saver;
	saver.restoreLayout(arr);
}

// @Code2

I hope to use the last layout, when opening the app again.
but, the following error occurred!
1234

I tried to solve the error, but I failed. Is it possible that the information ‘saver.serializeLayout()’ keeps is not comprehensive?

Why examples depend on library installation?

As a user, I don't want to install anything to see a demo. What I want is to build a library, build examples, and check them out. Why should I care about how to make examples work?

Also as a developer, I don't want to reinstall the library after each library change. What I want is to rebuild the library and see my changes quickly.

I suggest getting rid of installation dependency for library examples.

Have you ever tested it on windows?

I really tried but still failed. I installed ninga and configured the required environment. It's almost the latest step. But when I try to run cmake step, I encountered the following problems.

CMake Error at CMakeLists.txt:10 (find_package):
Could not find a configuration file for package "KDDockWidgets" that is
compatible with requested version "".
The following configuration files were considered but not accepted:
C:/library/kddockwidgets/src/KDDockWidgetsConfig.cmake, version: 0.1 (64bit)

ps:
when I use command
cmake -DCMAKE_PREFIX_PATH=C:\library\kddockwidgets,

error occured as follows,
Could not find a package configuration file provided by "KDDockWidgets" with any of the following names:
KDDockWidgetsConfig.cmake
kddockwidgets-config.cmake

so I use this instead
cmake -DKDDockWidgets_DIR=C:\library\kddockwidgets\src

could you please help me,thanks a lot

Window repaint issue when moving dockwidgets from main window to secondary monitor

KDDockWidgets commit: 4e88b37
Windows 10
QT 5.14.2
When using 2 identical model side by side displays, each set to same display resolution, sliding a dockwidget panel from one monitor to the other monitor causes the dock widget panel to not repaint properly at right edge of window. Slightly expanding/contracting the widget causes a repaint which will then paint properly.

Reproduce:
Launch example test app.
Slide widget containing DockWidget #6, #7 & #8 to the other display.
Note dock widget on right hand side & bottom of window has a repaint issue.

This issue can also be reproduced by sliding a contained dock widget from one monitor to the 2nd monitor. Letting the widget stay in the 2nd monitor by releasing the drag button on the mouse. Then sliding the widget back to the original monitor and releasing the drag button on the mouse.

Annotation 2020-05-31 174726

Bug: dock widget does not appear at previous place

Steps:

  1. Attach several dock widgets to some floating window
  2. try to hide one of dock widget (toggleAction()->setChecked(false))
  3. then show it (toggleAction()->setChecked(true))

Result: This dock widget does not appear at previos place.

Bug only with floating windows.
Window 10, Qt 5.11.0 and Qt 5.14.1

Showing the close button for a tab when hovering over the tab

Hi,
at this moment, it is not possible to hide the close icon on the tabs if we choose closable tabs.
Will it be possible to provide a feature like in visual studio, where the close icon appears on the tab widget upon mouse hover event
and close icon is also visible on currently active Tab.

In the attached fig we see close buttons of all the tabs, irrespective of the active status of the tab and mouse position.
TabsWithCloseButton

Kind Regards
Nandish

Scaling problem if flag aero snap is disabled

There is a scaling problem with the kddock widgets example. How to reproduce:
2 screens (100% and 150%)
Build the example with
flags &= ~KDDockWidgets::Config::Flag_AeroSnapWithClientDecos;
The animation explains the rest:
scaling_problem_no_aerosnap
The behaviour is crashing the application (like in this animation) or the dock widget is getting bigger/smaller.

Why are some Widgets private?

I'm wondering why some widgets are private.
I'm as a user of the library I see this "interface":
| Config.h
| docks_export.h
| DockWidget.h
| DockWidgetBase.h
| FocusScope.h
| FrameworkWidgetFactory.h
| KDDockWidgets.h
| LayoutSaver.h
| LayoutSaver_p.h
| MainWindow.h
| MainWindowBase.h
| QWidgetAdapter.h
|
+---multisplitter
| Item_p.h
| multisplitter_export.h
| Separator_p.h
| Separator_qwidget.h
| Widget.h
| Widget_qwidget.h
|
---private
| Draggable_p.h
| DropIndicatorOverlayInterface_p.h
| FloatingWindow_p.h
| Frame_p.h
| TitleBar_p.h
|
---widgets
FloatingWindowWidget_p.h
FrameWidget_p.h
QWidgetAdapter_widgets_p.h
TabBarWidget_p.h
TabWidgetWidget_p.h
TabWidget_p.h
TitleBarWidget_p.h
For example I can reimplement/inherit from TitleBarWidget which is located in private/widgets/TitleBarWidget_p.h.

It is strange to use something from a "private" folder. If I use for exmaple QToolBar https://doc.qt.io/qt-5/qtoolbar.html it is not hidden in a private folder.

Furthermore in the documentation the "private" classes/types are not listed (https://docs.kdab.com/kddockwidgets/latest/annotated.html). Of course I can change the doxygen configuration to list the private classes, but for me there aren't private.

For me it is interessting to see the inheritance graph to have a feeling how the classes relate to each other.

Kind Regards,
Thomas

A click on tabs there is no focus changed

With the flag KDDockWidgets::Config::Flag_TitleBarIsFocusable the title bar is able to get the focus changed.
But the tabs we need the same functionality. A click on a tab the focus changed signal should be emitted.
In the following animation I started the example with "-p". So the content and the title bar react on the click event, but not the tabs:
Click_on_tab_No_Focus
This even more important, if the titlebar is hidden.
Kind Regards,
Thomas

Tabs without icons

Hi,
With the below code, I could add icons to all the dockwidgets.
By adding the below lines in KDDockWidgets::DockWidgetBase *MyMainWindow::newDockWidget() Function
QIcon myIcon(":/assets/bakterium.svg");
dock->setIcon(myIcon);
It appears as shown in attachment TabwithIcons.png

However i needed tabwidgets without icon, but the dockwidgets with icons.
I could achieve this by tweaking the function
void TabWidgetWidget::insertDockWidget(int index, DockWidgetBase *dw,
const QIcon &icon, const QString &title)
{
insertTab(index, dw, title);
}

It appears as shown in TabwithoutIcons.

TabwithIcons

TabwithoutIcons

Would it be possible for you to provide an interface where in which we could create dockwidgets with icons and the icons does not appear when the dock widget is tabbed.

This is required in our application and we would highly appriciate the efforts from your side.

Kind Regards
Nandish

Build error

Hello. I cannot build project.

cmake -G Ninja
CMake Error: Could not find cmake module file: CMakeDetermineHOMEPAGE_URLCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_HOMEPAGE_URL_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_HOMEPAGE_URL_COMPILER
CMake Error: Could not find cmake module file: /home/andrei/KDDockWidgets/CMakeFiles/3.10.2/CMakeHOMEPAGE_URLCompiler.cmake
CMake Error: Could not find cmake module file: CMakeDeterminehttps://github.com/KDAB/KDDockWidgetsCompiler.cmake
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER_ENV_VAR
CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
Missing variable is:
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER
CMake Error: Could not find cmake module file: /home/andrei/KDDockWidgets/CMakeFiles/3.10.2/CMakehttps://github.com/KDAB/KDDockWidgetsCompiler.cmake
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_HOMEPAGE_URL_COMPILER could be found.

Tell CMake where to find the compiler by setting the CMake cache entry
CMAKE_HOMEPAGE_URL_COMPILER to the full path to the compiler, or to the
compiler name if it is in the PATH.

CMake Error: Could not find cmake module file: CMakeHOMEPAGE_URLInformation.cmake
CMake Error at CMakeLists.txt:3 (project):
No CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER could be found.

Tell CMake where to find the compiler by setting the CMake cache entry
CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.

CMake Error: Could not find cmake module file: CMakehttps://github.com/KDAB/KDDockWidgetsInformation.cmake
CMake Error: CMAKE_HOMEPAGE_URL_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_https://github.com/KDAB/KDDockWidgets_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

Wrong include in QWidgetAdapter

Hi,
there is a wrong include path in QWidgetAdapter.h:

#include "../multisplitter/Widget_qwidget.h"

It should be

#include "multisplitter/Widget_qwidget.h"

image

Background: In our project we didn't added the include dir "multisplitter". Therefore Widget_qwidget.h couldn't be found.

If the multisplitter dir is important then please add it to the cmake file:
image

Greetings,
Thomas

Calling close before DockWidget reusage

Hello! The question is about resetting DockWidget. When I simply remove widgetA after calling setWidget(widgetB), then I've got empty area besides widgetB. Do I have to call close()/forceClose()?

dock->setWidget(widgetA);
dock->close(); // or forceClose()?
dock->setWidget(widgetB);
delete widgetA;

What is the minimum required Qt version?

My project (x64dbg) is using Qt 5.6 and I managed to get it to compile on Qt 5.6 with minimal configuration changes. However I'd like to know what Qt version is officially required as a minimum version, because things do not seem to work very well on this version.

Reorder tabs

Hi, is it possible to enable changing the order of the tabs by dragging? You can't do it by default in the example, I was wondering if there are any flags to enable that functionality.

undocking qopenglwidget results in a blank widget

Hi, I tested the KDDockWidgets with the cube example QOpenGLWidget from Qt 5.12. It initializes the widget ok but as soon as I undock the widget, it doesn't draw my gl widget but instead just shows a floating window with nothing in it. When I stepped through with the debugger, it calls InitializeGL after undocking, but it never calls the resizeGL or paintGL functions within my class.

Status of QtQuick implementation?

Apologies if this is the wrong place, but just generally curious about the status of using this in a QtQuick-based project? I see many references to it across the source files, but note that it is still part of the 'Roadmap' at the same time. It seems like it is not quite functional yet, but please correct me if I'm wrong.

Assuming there is still work to be done, is there any particular way to be helpful in terms of contributions?

Layout not working with different monitor scaling

  • Start a program on a screen with a scaling set at 125%
  • Move to another screen with scaling set at 100%: the application is unusable
  • Resize the application: the layout is destroyed
  • Move the application back to the first screen: it works again

Dock widgets reusage

Hello! How can I safely delete previous widget and insert another one into DockWidget?
Do I have to assign another unique name to dock widget in the same MainWindow instance, if I recreate dock widget itself?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.