In 2019, I optimized QStringList::removeDuplicates() by using std::pmp::unordered_set with a std::pmr::monotonic_buffer_resource, when available. The class that I wrote to encapsulate this optimization has since been re-implemented three times. The latest iteration has recently landed in KDToolBox. If you have code that looks a bit like this: then you should read on.
KDAB Blogs Get the RSS Feed
Stay up-to-date and get inspiration from KDAB’s expert insights into Qt, C++ and OpenGL development.
Our engineers and designers share cutting-edge technology news and ideas with regard to Qt, QML, Qt on Android, OpenGL, Qt 3D, Vulkan, Scalable UIs and more embedded, mobile and desktop-related topics.
KDE Frameworks – Part 1 KConfig, for Storing and Fetching Configuration Data
Qt provides a rich set of high-quality, cross-platform APIs, but can't cover every possible use case. KDE has created code to fill these gaps in its many projects, sharing these libraries as KDE Frameworks.
New Release: KD Reports 2.0.0
Version 2.0.0 of KD Reports has just been released! KD Reports creates all kinds of reports from within Qt applications. These reports are printable and exportable from code and XML descriptions. KD Reports is a developer tool used in source code, but it allows the use of templates that are created by design staff. Reports […]
Improving C++ Development in Visual Studio Code with compile_commands.json and Bear
As described in our previous blog posts, you can use Visual Studio Code as an IDE for C++ projects. It works particularly well with CMake-based projects. Unfortunately, with build systems not supported natively by VS Code, you need to manually configure include paths and compilation definitions, for the code model to work properly. Since the […]
KDDockWidgets 1.4.0 Released!
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 […]
Hotspot: How const Can Improve Performance
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 […]
KD Chart 2.8.0 has been released!
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 […]
Automotive Grade Maps and Navigation for Everyone Technical Preview Release
It is our pleasure to introduce a shiny new Maps & Navigation solution for QML developers! This QML plugin is a joint effort between KDAB & 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 […]
KDSoap 2.0.0 Released
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 […]
On the Removal of toSet(), toList() and Others or "How Do I Convert a QList to QSet in Qt 6?"
(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 […]