David Faure
54 results
A follow up to the blog post on Saying No to Qt stylesheets, this video introduces different solutions: implementing the QStyle API, using Qt Stylesheets (QSS), writing custom widgets, and writing item delegates.
This blog will give you a brief overview of profiling C and C++ applications. Additionally, it will lay before you all of the tools available, with the purpose of aiding you in choosing the right tools at the right times. The Steps for Profiling Before we look at the actual tools, let's go over the […]
In this blog on debugging and profiling, I would like to give you an overview of the debugging tools that exist for C and C++ applications. Automated Testing The first thing you need to do is make sure your code is properly tested. This, in itself, is not debugging, but it enables you to make […]
You have two choices when it comes to giving a custom style to your Qt widgets. Qt Style Sheets are very convenient for getting started -- just a few CSS-like rules, and they work. It is our experience, however, that Qt Style Sheets create too much trouble and a QStyle subclass (*) gives a better […]
In this video, you will learn how to measure and reduce the memory consumption of a C++ application, using the opensource tool called Heaptrack. A practical example from KDAB's debugging and profiling training is used to show two actual problems in a C++/Qt application being resolved by Heaptrack.
Learn more about the profiling and debugging training course provided by KDAB.
Découvrez la formation débogage et profilage proposée par KDAB
While a CPU usually has about a handful of cores, a GPU has hundreds of them that work in parallel. Even simple 3D scenes sometimes deal with big data. Having said that, you quickly reach your limit with simple debug outputs. There are a couple of tools to help you understand what's going on under the hood. Let's take a look in this video.
Profile your application with VTune or the combination of perf and Hotspot, in order to pinpoint the performance bottlenecks in your code and verify that your changes improve performance.
This video introduces the series about debugging and profiling for C/C++/Qt applications.
This video will give you an overview of many debugging techniques and tools for C/C++ applications. This includes unit testing and other types of automated testing, code coverage, static code analysis, logging, assertions, tracing, debuggers, Gammaray, valgrind, sanitizers, and more.
These are some really cool or obfuscated code snippets for your amusement. We didn't want to rate them, so the order doesn't mean anything at all :) Just to make sure that there's no misunderstanding: This code really is/was in the Qt or KDE repositories. From Kivio, main.cpp From Qt 2.2.1 (src/canvas/qcanvas.cpp) Writing code that […]
Auto-Accepting in QSortFilterProxyModel
Since Qt 6.0, QSortFilterProxyModel Can Auto-accept Child Rows of Rows Matching the Filter.
6 October 2021
In Qt 5.10, we added support for recursive filtering in QSortFilterProxyModel, which means keeping all parents of items matching the filter. One of the comments in the blog post about that feature was "Sometimes, you do not only want to show parents for a match (so the match is visible), you may (also) want to […]
If you ever need to create a project around a single C++ file (or just a few C++ files) in CMake, as you might for quick test cases, you might find it tedious to write a CMakeLists.txt file by hand every time. To make this easier, I've written a script called cmake-project that you can […]
One of CMake's strongest points is making it easy to provide and use libraries, in the same project or in different projects. This video explains the feature in more details and shows a simple example.
This video shows and explains the source code of a CMake build definition file (CMakeLists.txt) for a simple Qt application. Although the example is based on Qt 5, the same CMakeLists.txt can be used with Qt 6, by simply replacing '5' with '6' everywhere.
This video introduces the CMake series, starting with: What is CMake? It will also mention the pre-requisites for this series and the topics that will be covered by the other videos in this series.
As the title would suggest, this video compares QMake and CMake, and explains why The Qt Company switched to CMake for Qt 6.
This video compares the multithreading facilities in Qt with those provided by the C++ standard library. Which one has a semaphore class? A thread pool implementation? A movable lock guard? Which one has the most convenient condition variable API?
Some time ago, I noticed that a unit test was quite slow, using 100% CPU for a number of seconds at one point in the test. I used perf and KDAB's Hotspot to record and examine where the CPU cycles were spent in that unit test, and I quickly noticed that a lot of time […]