If you’ve read the first article in this series, you’ll know what full stack tracing is and why you definitely want it. This time, we’ll show you how to setup full stack tracing on your Linux system. There are two steps – first get everything configured to capture a trace, and then view and interpret […]
QtDevelopment Get the RSS Feed
for feeds to planetqt and planetkde
KD Chart 2.7.2 released! a very minor final release of the 2.7 series
KDAB has released KD Chart 2.7.2, the final release in the KD Chart 2.7 series. This is a very minor release; however, it’s significant in that it may be the final release of KD Chart that will support Qt 4. KD Chart is a comprehensive business charting package with many different chart types and a […]
KD Reports 1.8.2 has been released small cleanup of last remaining issues for Qt 4 and more!
We’ve just released version 1.8.2 of our developer tool, KD Reports. KD Reports generates printable and exportable reports from code and from XML descriptions. Reports may contain text paragraphs, tables, headlines, charts, headers and footers and more. Version 1.8.2 is planned to be the final release in the 1.8 series of KD Reports. KD Reports […]
There and Back Again what it entails to fix 10-year-old bugs in QNetworkAccessManager
A few days ago, a customer using our KD Soap library reported an interesting problem with it. The library worked perfectly to access the SOAP server, but there was some noticeable latency when doing a series of requests in short succession from the client. This latency should not have been there, as both the server […]
How to Build C++ Projects with the Address Sanitizer on Windows memory bug detection via compiler extension
Memory bugs are tricky. Leaks have a clear impact on performance, and quickly become hard to spot when heap allocated objects move too much. Memory access bugs, on the other hand, make your program crash right away, if you’re lucky. In less desirable cases, they may end up corrupting random objects on the heap, and […]
Fixing a common antipattern when loading translations in Qt
TL;DR: If you choose a default translation in your Qt application based on a locale name like this: then please change it to: Some of your users (me!) will be thankful that your application appears in the same language as the rest of their system. Background I’m a Polish guy working with computers, mostly on […]
Qt, range-based for loops and structured bindings Part 1
Qt has a long history. The first stable version was released before the first version of C++ was standardized and long before the different C++ compiler vendors started shipping usable implementations of the C++ standard library. Because of this, Qt often followed (and still follows) some design idioms that feel unnatural to the usual C++ […]
Getting rid of “volatile” in (some of) Qt
The upcoming version of the C++ Standard (C++2a) is proposing to deprecate certain usages of the volatile keyword, by adopting the P1152 proposal (Deprecating volatile). Despite the somewhat “flamboyant” title, the actual deprecated parts are very limited and indeed the paper limits the deprecation to somehow language/library corner cases and/or dangerous antipatterns. For instance certain […]
UiWatchDog: a keepalive monitor for the GUI thread Part of the KDToolBox series
Continuing our blog series about KDToolBox, this time we will discuss UiWatchDog, a keepalive monitor for the GUI thread. Alive? A fundamental rule when writing applications in event-driven UI frameworks such as Qt is: do not ever block the GUI thread! The GUI thread is also usually called the main thread of the application — […]
Qt 3D Synchronisation Revisited
As mentioned in the previous article in this series, Qt 3D 5.14 is bringing a number of changes aimed at improving performance. Most people familiar with Qt 3D will know that the API is designed around the construction of a scene graph, creating a hierarchy of Entities, each of them having having any number of […]