Guiseppe D'Angelo delivers a masterclass in code review and commentary on the original 'Structural Bindings with Qt Containers' as presented by Jesper Pedersen in the Qt Widgets and More series.
A quick review of recent changes in CXX-Qt, a set of Rust crates for creating bidirectional Rust ⇄ C++ bindings with Qt.
A demo looking at the pluses and minuses of three versions of the same application, each running on an iMX 8 board, but developed with different toolkits: Qt, Slint and Flutter.
We just released CXX-Qt version 0.5! CXX-Qt is a set of Rust crates for creating bidirectional Rust ⇄ C++ bindings with Qt. It can be used to integrate Rust into C++ applications using CMake or build Rust applications with Cargo. CXX-Qt provides tools for implementing QObject subclasses in Rust that can be used from C++, […]
Not all Qt developers are using Qt Creator as their main IDE for development. Some of us are using other IDEs, like Visual Studio, Visual Studio Code or CLion, per choice or because a project requires it. On Windows, with the MSVC compiler, the debugging experience with Qt 6 can be quite frustrating for some […]
In this second video, Christoph presents the technique of "Hot Reload" allowing for quicker turn-around times in embedded development using Qt/QML.
When developing for Embedded Devices, turn-around times are often long and slow down the development experience. In this first video, Christoph Sterz shows how the Cross-Platform-Aspect of Qt allows developers to save time by developing on their desktop machines.
This episode of KDAB News includes: Slint 1.0 Release - Interview with Co-Founder Olivier Goffart; KDAB at Embedded World 2023; Qt Creator 10 Beta released; Tip of the month - Designing your First Embedded Linux Device; Announcements.
Given a strictly positive integer i, this code will calculate i+1 "equally spaced" values between 1 and 0: If you're looking for a trap, this does actually work for any i > 0. One can verify it experimentally; run the code with i from 1 to INT_MAX. For simplicity, just consider the case j = […]
A very common implementation pattern for QObject subclasses is to declare its child QObjects as data members of type "pointer to child." Raise your hand No, keep your hand on your computer input device :-) Nod if you have ever seen code like this (and maybe even written code like this yourself): A fairly common […]
This episode of KDAB News includes: Rust Bindings for Qt; Qt 6.5 Beta released; Blog about Uninitialized storage in C++; Announcements.
In this episode I'll show how to work with git sub-modules, and especially how to cope with changes coming in from sub-modules. I'll also discuss the issues of switching branches or doing a git bisect when your project contains sub-modules.
Are you already convinced and just want to download the library? We're glad you liked it: https://github.com/KDAB/KDAlgorithms I'm sure many people have told you time and time again, "Don't use raw for loops; use algorithms." Still, each time you tried, you found your code harder to read. In case you're wondering, the above simply prints […]
CXX-Qt is a set of Rust crates for creating bidirectional Rust ⇄ C++ bindings with Qt. It can be used to integrate Rust into C++ applications using CMake or used to build Rust applications with Cargo. CXX-Qt provides tools for implementing QObject subclasses in Rust which can be used from C++, QML, and JavaScript.
If you're following our Youtube channel you might have heard me talking about QVarLengthArray. If you're not... you should follow us! But let me give you a quick recap. QVarLengthArray is a Qt container that acts like a vector; its elements are stored contiguously in memory and it has a dynamic size. At any time […]
This episode of KDAB News includes: Interview with Kalle Dalheimer, CEO and President of KDAB; Hotspot 1.4 released; Tool of the month - KDDockWidgets; Resources; Announcements.
This video shows how to "overload" templates with two real-world examples: a sort function with general implementation plus char specialization, and a vector implementation with boolean specialization for space efficiency. Finally, we'll see how to make C++ reveal what type a template parameter represents.
If you’re a reader of this blog, you probably know that we have a huge amount of quality material on QML and Qt Quick, among other topics. In fact, there is so much material that it can be hard to find what you need. If that sounds familiar, you’ll want to bookmark this page! This […]
In this episode we will start slowly understanding what a template is, but within 15 minutes we will have seen the assembly code generated, have discussed template type parameters and non-type parameters, and finally have discussed template template parameters (no that is not a mistake that it says template twice!)
You have likely heard it before - "no raw for loops, use algorithms instead". In this episode, Jesper will give a few examples of code that became much cleaner when rewritten from raw loops to algorithms.
Further, he will introduce an algorithm library he has written to make it much less painful to write code using algorithms.