Bringing software into a safety critical environment can be tricky, especially when using the complex APIs needed for modern 3D graphics. That’s what makes OpenGL SC (Safety Critical) so important: it bridges the gap between beautiful displays and functional safety, while trying to remain as close to existing embedded standards that we all know and love. OpenGL SC will only become more prevalent in embedded graphics work as industries increasingly try to merge safety conscious methodologies with user-friendly interfaces.…
KDAB on Qt Get the RSS Feed
Posts about Qt, for feeds like planetqt and planetkde
This blog series will introduce the clang-tidy utility from the Clang/LLVM project and show how to use it to automatically refactor…
All Qt developers have asked themselves at least once in their careers: “why isn’t my slot invoked?” (I’ve asked myself that question many, many times).
There are a number of reasons why a connection may fail to be properly set up, and ultimately cause our slot not to be invoked. This blog post is a practical series of checks to help you debug these sorts of issues.
0. Was the slot really not invoked?
First and foremost, are we really …
A small new feature that was added to Qt 5.8 is the ability for moc (Qt’s meta-object compiler) to extract meta-object information at the namespace level. This means, for instance, that you can have introspection support for enumerations defined in a namespace (not just in QObject subclasses, or classes tagged with Q_GADGET), and use such enumerations in QtScript, QtDBus and QML.
The support for all of this involves a few new macros. The most important one is …
I’m extremely happy to finally announce the first stable release of heaptrack, the FOSS heap memory profiler for C/C++ Linux applications. You can download the source tarball from the KDE mirrors: https://download.kde.org/stable/heaptrack/1.0.0/src/
Heaptrack is a fast heap memory profiler that runs on Linux. It allows you to track all heap memory allocations at run-time. Afterwards, the accompanying GUI tool can be used to find optimization opportunities in your code by analyzing the recorded profiling data. It allows you to:
Qt 5.8 has just been released! Another great release of Qt, made possible by thousands of commits by over a hundred different contributors:
And here we are again, with the usual showcase of the most outstanding contributions to Qt 5.8 developed by KDAB engineers.
In no particular order:
Qt 3D continues to receive lots of improvements and bugfixes, thanks to the hard work of …
We have released version 2.7 of our Qt application introspection tool GammaRay. GammaRay allows you to observe the behavior and data structures of Qt code inside your program live at runtime.
Here are a few of the highlights of this release:
- The new Qt 3D geometry inspector allows you to look at a wireframe rendering of entity geometries, as well as the raw OpenGL buffer data. Visualizations of normal vectors and backface culling help to identify common problems in geometry
Knowing what tools are at your disposal when looking to make a program faster or keep it operating smoothly is critical to your success as a programmer. We recently solved a performance problem using Linux Kernel Tracepoints so we thought we’d share the process with you so that you can see for yourself if this tool makes sense in your toolkit.
Our challenge: the database writes in a customer’s application normally took under 5ms but occasionally spiked to over 150ms, …
This is the first in a series of blog posts on QStringView, the
std::u16string_view equivalent for Qt. You can read about QStringView in my original post to the Qt development mailing-list, follow its status by tracking the “qstringview” topic on Gerrit and learn about string views in general in Marshall Clow’s CppCon 2015 talk, aptly named “string_view”.
The last post from my colleague Marc Mutz about deprecating
Q_FOREACH caused quite an uproar amongst the Qt developers who follow this blog.
I personally feel that this was caused fundamentally by a perceived threat: there is a cost associated to porting away a codebase from a well-known construct (
Q_FOREACH) to a new and yet-undiscovered construct (C++11’s range based
for), especially when the advantages are not that clear. (With stronger advantages, maybe people would be more keen …