You know the drill: in C++ you need to #include header files that declare the types and functions from the libraries that you use. Qt is no exception in this regard. Qt follows a very nice convention for its own datatypes: if you need to use a type called QType, then use #include <QType>. This […]
Blog Archives
Full Stack Tracing, Part 3 Interpreting traces
This is the third and last installment of our series about full stack tracing. If you haven’t read them yet, you’ll probably want to check out the introduction and tool setup portions first. In this blog, we’re going to focus on visualizing and interpreting full stack traces. At this point, we’re going to assume that […]
How to build Qt with the Address Sanitizer on Windows
Some time ago, I wrote about how to build C++ projects with ASAN on Windows. Now, if you happen to deal with Qt projects you may want to take this one step further and sanitize Qt itself. Why bother with a sanitized Qt build? Let’s have a closer look on why having a sanitized Qt […]
Qt 3D Renderer changes and improvements in Qt 6
With Qt 6 well on its way, it’s about time we go over some of the internal changes and optimizations made to Qt 3D for the upcoming release. In a separate article, my colleague Mike Krus has already highlighted the API changes we’ve made in Qt 3D for Qt 6. This post will dive into […]
Qt 3D Changes in Qt 6 to the public API
Overview Qt 6 is nearly upon us. While this has not been addressed by other publications, Qt 3D is also introducing a number of changes with this major release. This includes changes in the public API that will bring a number of new features and many internal changes to improve performance and leverage new, low-level […]
KDDockWidgets v1.1 has been released! An advanced docking system for Qt
KDDockWidgets v1.1 is now available! Although I just wrote about v1.0 last month, the 1.1 release still managed to get a few big features. Here’s the ChangeLog: Auto-hide/SideBar support This was much awaited and probably the last essential feature that was missing. You can now set a dock widget to auto-hide to a side bar. […]
How to Build C++ Projects with the Address Sanitizer on Windows memory bug detection via compiler extension
Memory bugs are tricky. Leaks have a clear impact on performance, and quickly become hard to spot when heap allocated objects move too much. Memory access bugs, on the other hand, make your program crash right away, if you’re lucky. In less desirable cases, they may end up corrupting random objects on the heap, and […]
QStringView Diaries: Zero-Allocation String Splitting QStringTokenizer merged for 6.0
After four months of intensive development work, I am happy to announce that the first QStringTokenizer commits have landed in what will eventually become Qt 6.0. The docs should show up, soon. While the version in Qt will be Qt 6-only, KDAB will release this tool for Qt 5 as part of its KDToolBox productivity […]
Qt on CMake Workshop Summary – Feb ’19 - Porting Qt to the CMake build system
Intro Last Monday and Tuesday a few brave souls from both the Qt Company and KDAB gathered together in the KDAB Berlin office premises to work on the CMake build system for building Qt. There was Mikhail, Liang, Tobias, Kai, Simon (QtCompany) as well as Jean-Michaël, Albert, Volker and me (KDAB) sitting together in a […]
Writing a Custom Qt 3D Aspect – part 2 Setting up the backend and communications
Introduction In the previous article we gave an overview of the process for creating a custom aspect and showed how to create (most of) the front end functionality. In this article we shall continue building our custom aspect by implementing the corresponding backend types, registering the types and setting up communication from the frontend to […]