Skip to content

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.

KDAB and Qt at Embedded World Nuremberg

Embedded World Nuremberg was bigger than ever this year (over 30,000 visitors!), with a large number of exhibitors displaying “Qt friendly” signs in Hall 4, showing how far we’ve come in recent years

This year KDAB exhibited alongside The Qt Company and other Qt partners at one gigantic stand devoted to all things Qt.

Automotive dominated this year, and a big attraction on the Qt booth was the superb RIMAC electric supercar for which KDAB provided a tablet-based digital brochure, …

Safety critical drawing with OpenGL SC Making your OpenGL ES code OpenGL SC compliant

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.…

What do I do if a slot is not invoked? A practical checklist to debug your signal/slot connections

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 …

New in Qt 5.8: meta-object support for namespaces

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.

Introducing Q_NAMESPACE

The support for all of this involves a few new macros. The most important one is …

Heaptrack v1.0.0 Release First stable release of the fast Linux heap memory profiler

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:

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:

  • Inspect

KDAB contributions to Qt 5.8

Qt 5.8 has just been released! Another great release of Qt, made possible by thousands of commits by over a hundred different contributors:

Commit percentages to Qt in the last 16 weeks, grouped by employer

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

Qt 3D continues to receive lots of improvements and bugfixes, thanks to the hard work of …

GammaRay 2.7.0 Released

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

Slaying Latency with Linux Kernel Tracepoints

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, …