David Faure
55 results
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 […]
Signals and Slots across Threads
20 July 2021
Thread Safety in Qt
13 July 2021
Data Races and How to Avoid Them
6 July 2021
QThread with an event loop
22 June 2021
After a short presentation of a QThread without an event loop, this video will tell you about threads with an event loop. This allows handling events for objects in secondary threads, which is necessary in order to be able to call slots on these objects.The video then presents two different ways to do this: creating both the thread and the worker at the same level, or encapsulating the thread into the worker.
QThread
11 June 2021
Introduction to Multithreading with Qt
10 June 2021
When using Qt's model/view framework, filtering has always been very easy with QSortFilterProxyModel. To filter a list using text typed by the user in a line-edit, you have certainly been applying the standard recipe: instantiate the proxy; insert it between view and source model; connect the lineedit's textChanged signal to the proxy's setFilterFixedString slot; done! […]
A retrospective on the KDE community from 20 years ago and how things were done back then, with an emphasis on community spirit and fun facts. Over time, the KDE community has seen many people join and leave, as with any open source community, which means that very few people in the current community still […]
KDE development, how it was done in the last century
7 December 2016
This KDE community retrospective explores development culture from 20 years ago, emphasizing community spirit and fun facts. It shares initial KDE culture with current generations, including surprising development practices (pre-CVS version control) and highlights how architectural elements now considered fixed were once subject to greater creativity, potentially encouraging renewed innovation.
Contributing to Qt - Panel discussion
20 March 2015
Additional Qt libraries outside Qt Project
13 March 2015
Abstract: This presentation will start by explaining the concept of inqlude.org and showing some of the libraries available there, pointing in particular to those that will be useful in the rest of the presentation. The multiple ways to use inqlude.org will be discussed: browsing the website and downloading sources, using the command-line tool to install […]
Additional Qt libraries outside of the Qt Project
13 March 2015
Last week I visited a new customer who is making medical and industrial devices which have one thing in common: image and video capturing, and letting the user save these files onto a USB key. These devices run embedded Linux and the application is done in Qt (and gstreamer for the video capture). The new […]
How to use helgrind to debug multithreaded Qt applications
Finding thread race conditions in Qt applications
(NOTE: this blog post has been edited many times since its original publication) You've heard of valgrind before, its default tool (memcheck) is such a life saver, being able to detect memory-related bugs in your code (leaks, double deletions, use of deleted memory, use of uninitialized memory, etc.). Well, it turns out that valgrind also […]


