Today’s blog post is about a small utility class in Qt with a… questionable name: QPointer. If you’re new to Qt, maybe don’t check out QPointer’s documentation just yet, and try to guess what the class does based on its name alone. I’ve seen countless users being very confused by it. Some end up using […]
Blog Archives
GammaRay 3.0.0 is released with support for Qt 6
KDAB has released GammaRay 3.0.0. GammaRay is a software introspection tool for Qt applications developed by KDAB for internal use, and now shared with the developer community on GitHub. This release is a special one, as we have now added Qt 6 support. An overview of changes since the last release Things we have added […]
GitHub Actions for C++ and Qt How to use GitHub Actions for C++ and Qt projects
You may already be hosting your code on GitHub, but do you know that GitHub provides a built-in Continuous Integration solution called GitHub Actions that is very easy to set up and free for public repositories? In this article I’m providing a crash course on what GitHub Actions are and how to use it for […]
See you in Berlin in November 2023?
In just a couple of months, there’s going to be not one, not two, not three, but four fantastic developer events in Berlin! We are not going to miss any of them, and so shouldn’t you. November 12-14: Meeting C++ If you are a C++ developer, do not miss the 2023 edition of Meeting C++. […]
Pimpl for Small Classes
The familiar solution for thick value classes that want to preserve binary compatibility is to use the pimpl pattern (private implementation), also known as d-pointer (pointer to data). In future versions of our class, we can freely change the contents of the pimpl (i.e. adding, removing, and/or modifying data members) but the binary compatibility of […]
Qt 6 Debugging in Visual Studio and VS Code Show More Qt Value Types in the Debugger
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 […]
QObjects, Ownership, propagate_const and C++ Evolution Const Correctness in Qt Applications
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 […]
Introducing kdalgorithms An Algorithms Library for C++14 and Above
Introducing the kdalgorithms library, purposed to make it easier to work with algorithms in C++14 and up.
On QVarLengthArray and Uninitialized Storage in C++
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 […]
Hotspot v1.4.0 Better Disassembly View and More...
Hotspot 1.4.0 has been released! Hotspot is a replacement for perf report. It’s a GUI for the perf profiler that takes a perf.data file, parses and evaluates its contents, and then displays the result in a graphical way. This feature release contains close to 400 commits since the last stable v1.3.0 release. It comes with its […]