This episode of KDAB News includes: Interview with KDAB's Till Adam & Ferrous Systems' Florian Gilcher - Why Rust?; Rust Training Courses; Heaptrack 1.5 Released; Tip of the month - QPointer
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 […]
I'm happy to announce the immediate availability of Heaptrack v1.5.0. Heaptrack is a heap memory profiler targeting mainly Linux, as well as FreeBSD. To learn more, please visit the project website. Version 1.5.0 incorporates about 70 changes since the v1.4.0 release from June last year. The highlights include: - Elfutils is now used for symbolizing […]
This episode of KDAB News includes: KDAB Training Day 2023; Interview with Giuseppe D'Angelo - What's new in Qt 6.6?; GammaRay 3.0 released; Tip of the month - GitHub Actions.
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 […]
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 […]
In this video, you will learn how to debug a painting issue for a QWidget, using the detailed recording by GammaRay of all individual painting operations.
In this video, you will learn how to use GammaRay to find the slot executed by a QAction, when the user clicks on a menu item. This technique works even if you know nothing of the application code, all you have to do is find the action by its user-visible text.
In this video, you will learn how to use GammaRay to identify a context menu (QMenu) in a running application. The Pick Element feature won't let us see the context menu, but there are other solutions, like filtering for show events and finding the QWindow created for the menu.
In this video, you will learn how to use GammaRay to investigate the issue of a widget that can be squeezed down far too much horizontally. After testing the fix by changing a property dynamically at runtime, you will see how to find the corresponding line of C++ code in order to fix the bug for good.
In this video, you will learn how to use GammaRay to identify the widget responsible for a double margin issue, a frequent cause for misaligned widgets. After testing the removal of the margin in Gammaray, you will see how to make your IDE jump to the line of code that creates the widget, in order to find the corresponding layout and fix the bug there.
This training by Milian Wolff focuses on achieving optimal performance in C++ and Qt applications for Linux systems. Key techniques include sampling profiling with Linux perf for on-CPU and off-CPU wait time analysis, measuring memory consumption and detecting leaks with Heaptrack, and profiling hybrid QML/C++ applications using specialized tools and methodologies.
We're pleased to announce we've added a new library, KDGpu, to the arsenal of tools we invent to make our lives easier - and then share with you on KDAB's GitHub. Who is this for? If you want to become more productive with Vulkan or learn the concepts of modern explicit graphics APIs, then KDGpu […]
In this video, you will learn how to use GammaRay to visually select a widget in your Qt application, and from there find the class name of the widget, and make your IDE jump to the line of code that instanciated the widget.
This video introduces the series, defining the typical problems of Qt Widgets applications that we are going to try and solve using GammaRay.
Reverse engineering in general is a tricky business and sometimes not very orthodox. So, why bother to write this article? Well, sometimes reverse engineering is also for something good. It started when my wife dusted off her watch. We had a huge unpleasant surprise when we found that the companion app is not available anymore […]
We are happy to announce the release of KDDockWidgets version 1.7.0! What is KDDockWidgets? KDDockWidgets is a development framework for custom-tailored docking systems in Qt, to use when you need advanced docking that is not supported by QDockWidgets. It was created by Sérgio Martins as a time-saving alternative to QDockWidgets. The ease-of-use of KDDockWidgets can […]
This video shows GammaRay, a Qt introspection tool, running a QML based game, Voltair, on the Steam Deck. It shows how to modify the application and get a quick preview of your change without recompiling it.
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 […]