KDAB_Tree_Header_Mobile KDAB_Tree_Header_Web

Trusted Software Excellence since 1999

Giuseppe D’Angelo

97 results

QVarLengthArray is a container class with interesting semantics, not found in any container from the Standard Library. Like an array, it stores elements contiguously in memory. Like a vector, it has dynamic size. But unlike a vector, it does not necessarily store them in heap-allocated memory.

When working with Qt, the question always arises: "Should I use Qt containers or Standard Library containers?" This isn't a simple binary choice involving just features - ease of use, convenience, familiarity, and interoperability all matter. This video illustrates pros and cons of both options to help you make an informed decision.

In this episode we'll talk about associative containers: containers that map arbitrary keys to values. What are the ones that are provided by Qt? Are there differences between their Qt 5 versions and their Qt 6 versions? Which one should one pick for a given use case? No spoilers – watch until the end (Lächeln)

In this video we discuss the two most used Qt containers: QList and QVector. How do they work? Are they similar to the std counterparts? What has changed in Qt 6 regarding them?

All Qt containers have a specific feature: they are "implicitly shared", also known as "copy on write". What does that mean exactly? What are the advantages for developers who use these containers? Are there any downsides?

Containers are data structures that hold arbitrary amounts of data (lists, maps, etc.). Qt ships with its own container family even though C++ and Python have their own. This video series answers: What are Qt containers' features? Should you use them? How do they differ from C++ Standard Library containers? What changed between Qt 5 and Qt 6?

This talk presents Unicode string handling foundations in Qt. We'll explain the Unicode standard, why it's necessary for user interfaces, and discuss Qt's low-level classes (QChar, QString) and how they map to Unicode concepts. We'll cover Qt's higher-level facilities including collation, grapheme cluster iteration, and locale-aware formatting—all essential for proper user interfaces.

You can speed up Qt applications almost for free by adding a single define to enable QStringBuilder. The catch: your code may fail to compile or crash in some places, but clazy will warn about potential crashes and the compiler will catch errors.

Qt comes with lots of classes relating to strings these days, including QString, QStringView, QStringLiteral etc. It comes with so many that I lost track, so maybe it is time to call my good friend Peppe. In this episode we will discuss what you need to know to get it right at least 95% of the cases, without knowing it all.

KDToolBox is KDAB’s collection of miscellaneous useful C++ classes and stuff, available on GitHub under a very permissive open source license (MIT). There’s a lot of goodies in there: from a single-shot QObject::connect(), to a table model to list model flattener proxy, to a UI watchdog class.

This episode explores C++'s explicit keyword: why there's no implicit keyword, why it's needed for QObjects, and available tooling. Topics include implicit conversions in string classes, when conversions go wrong, explicit to the rescue, named constructors, QObject-specific issues, Q_IMPLICIT, explicit(false), clang-tidy support, and rules for when implicit conversions are acceptable.

This talk argues that C++ is excellent for embedded development, going beyond being a "superset of C" with stricter typing, automatic resource management, generic programming, and performance improvements over equivalent C code. It aims to demystify C++ myths that have become self-fulfilling prophecies, showcasing code demonstrating how C++ helps C developers create more robust, efficient software.

GiuseppeD'Angelo

Giuseppe D’Angelo

Senior Software Engineer