KDDockWidgets 1.4.0 has been released! KDDockWidgets is a framework for custom-tailored docking systems in Qt. This is a major release with new features and lots of fixes. KDDockWidgets 1.4.0 Overview The big highlights of KDDockWidgets 1.4.0 are the experimental MDI support and the new declarative API for QtQuick: By using MainWindowMDI, you can now have […]
This video compares the multithreading facilities in Qt with those provided by the C++ standard library. Which one has a semaphore class? A thread pool implementation? A movable lock guard? Which one has the most convenient condition variable API?
Some time ago, I noticed that a unit test was quite slow, using 100% CPU for a number of seconds at one point in the test. I used perf and KDAB's Hotspot to record and examine where the CPU cycles were spent in that unit test, and I quickly noticed that a lot of time […]
In this edition, we have: KDAB takes over code browser from woboq - an interview with Olivier Goffart and Till Adam. We also offer the Releases of Qt Creator 5.0 Beta, KD Soap 2.0 and KDDockWidgest 1.4, our Tool of the Month KD Toolbox, Events, Announcements and Resources.
KD Chart 2.8.0 has been released! KD Chart is a comprehensive business charting package with many different chart types and a large number of customization options. We are constantly improving the package, and have been doing so for years. KD Chart 2.8.0 is a very minor release. The most notable change is the removal of […]
Number 30 in the Qt Widgets and More series, this video address the issue where, if you are doing a larger refactoring involving central files, you might end up recompiling over and over again while fixing just a single source file. In these situations, using Qt Creator's ability to recompile only a single file is very useful. But there's more.
In this video, you will learn about communicating between two threads using Qt signals and slots and what is really happening under the hood when you do that. With the help of didactic diagrams, you will learn different ways to set this all up, including possible pitfalls.
This video will show you how you debug loading of the plugins, using strace on Linux and procmon on Windows.
It is our pleasure to introduce a shiny new Maps & Navigation solution for QML developers! This QML plugin is a joint effort between KDAB & Magic Lane (formerly General Magic) to bring the excellent General Magic Maps and Navigation SDK to the QML world. What makes the General Magic QML plugin special? It's easy to use. With […]
This video provides answers to the following questions:
Can you call methods on an object shared between threads?
Can you call the same method in different objects?
What about QObject, is it thread-safe?
In the previous episodes, we created and compiled a plugin for Qt designer. The final part missing is to deploy the files in the right directories.This episode discusses the CMake magic that makes that happen.
If you think bool is atomic (and therefore needs no mutex) or if you think volatile is useful in multithreaded programs, you should watch this video. Also, you will learn two different ways to implement asking for a QThread's run() method to finish.
KDSoap 2.0.0 was just released! What is KDSoap? KDSoap is a tool for creating client applications for web services, without the need for any further component such as a dedicated web server. This tool makes it possible to interact with applications which have APIs that can be exported as SOAP objects. The web service then […]
This session from June 2021 offered an interview with Kai Uwe Broulik of KDE, information on the Qt Widgets and More video series and announced the releases of Qt 6.2 Alpha and Qt for MCUs 1.9. This was followed by our Tool of the Month: Range-v3, Event announcements and an addition to our Resources page: 'Practical Programmers Guide to C++20’.
In this fourth episode of our mini series on developing plugins for Qt Designer, we finally implement the classes that make up the plugin.
Making widgets into standalone plugins can be challenging if they weren't carefully designed during development. A solution is restructuring your application into a library plus simple main function using that library. This episode covers everything needed for this architectural transformation to enable proper widget plugin extraction.
(Apologies for the clickbait in the post title! But I'd really like people who are searching for solutions to read this.) Between Qt 5.14 and Qt 5.15, my colleague, Marc Mutz, and I submitted a series of patches to Qt that added "range constructors" to the Qt containers. This brought Qt containers one step closer […]
After a short presentation of a QThread without an event loop, this video will tell you about threads with an event loop. This allows handling events for objects in secondary threads, which is necessary in order to be able to call slots on these objects.The video then presents two different ways to do this: creating both the thread and the worker at the same level, or encapsulating the thread into the worker.
Years after its creation, C++ is still, and certainly was in 2021, considered by some to be one of the most powerful languages on the planet. For this video we gathered an international panel of C++ experts to give you insights about the C++ language: where it's going and how it got there.
Before you create a plugin, your classes may be configured using constructors like:
class Wishes {
public:
Wishes(bool isExclusive, const QColor& color, QWidget* parent);
...
}
But how do you handle these parameters if your constructors can't take anything but the parent pointer? This episode will discuss a few different possible solutions.