Curious about how to programmatically instantiate arbitrary QML components? Explore a pure QML implementation of the factory pattern with this blog series. In part 3, we evaluate a technique for anchoring nested components, and how to mitigate the risk for remote code execution.
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.
Mastering Embedded Updates, Continued
We’ve explained some of the architectural elements of building your own firmware over-the-air (OTA) soution for IoT and embedded systems in a previous blog. But what about the hardware requirements? Or processes? Let’s explore issues that are essential to solve for a robust OTA solution. Maximizing flash longevity Modern devices rely on solid-state drives, which […]
QtTest Extension for VSCode Introducing QtTest Runner
Qt Test is a framework designed for unit testing applications and libraries built with Qt. It provides all the standard features commonly found in unit testing frameworks, making it easier to write unit tests for Qt-based projects. We’re happy to introduce the QtTest Runner – a Visual Studio Code extension for running Qt Tests via […]
KDGpu 0.5.0 is here! Our Vulkan wrapper now has OpenXR integration and more.
Since we first announced it last year, our Vulkan wrapper KDGpu has been busy evolving to meet customer needs and our own. Our last post announced the public release of v0.1.0, and version 0.5.0 is available today. It’s never been easier to interact with modern graphics technologies, enabling you to focus on the big picture […]
KDDockWidgets 2.1 Released Stability, Fixes, and Enhancements
KDDockWidgets has launched its latest version 2.1. This release comes packed with over 500 commits, offering enhanced stability over its predecessor, version 2.0, without introducing any breaking changes. KDDockWidgets is a versatile framework for custom-tailored docking systems in Qt written by KDAB’s Sérgio Martins. For more information about its rich set of features, have a […]
Qt and Trivial Relocation (Part 4) On trivial relocation and move assignments
In the last post of this series we learned that: erasing elements from the middle of a vector can be implemented, in general, via a series of move assignments, move constructions, swaps, destructions for types with value semantics, the exact strategy does not really matter for types with write-through reference semantics, the strategy matters, because […]
Qt and Trivial Relocation (Part 3) Trivial relocability for vector erasure, and types with write-through reference semantics
In the last post of this series we started exploring how to erase an element from the middle of a vector. We discussed that in principle there are several different possible ways to implement erase().For instance, a vector could move-assign over the elements to be erased: Alternatively, a vector could use rotations or some other […]
Laying Out Components with Qt Quick and JSON Factory Design Techniques - Part 2
Did you know you can programmatically instantiate arbitrary QML components? Dive into a pure QML implementation of the factory pattern with this blog series. In part 2, we explore techniques for laying out the nested components, and learn about the quirks behind QML's Loader.
Qt and Trivial Relocation (Part 2) Relocation and Erasure
In the last post of this series we discussed the usage of trivial relocation in order to optimize move construction followed by the destruction of the source. To quickly recap: objects of certain datatypes (“trivially relocatable” types) can be moved in memory by simply moving bytes; this can be used to optimize certain bulk operations […]
Qt and Trivial Relocation (Part 1) What is relocation?
The container classes introduced in Qt 4 (Tulip, for the aficionados) had an interesting optimization: the ability to turn certain operations on the contained objects into byte-level manipulations. Example: vector reallocation Consider the reallocation of a QVector<T>: when the vector is full and we want to insert a new value (of type T), the vector […]