Qt comes with a string class, as does C++ itself (namely std::string). But in contrast to C++'s string class, Qt's counterpart has lots of powerful utilities built in, which makes it easy to do string operations. Learn all about these in this episode.
It's been around 10 months since the last release, and we're pleased to introduce GammaRay 3.1. GammaRay is a powerful tool for developers using Qt, providing deep inspection capabilities to help you understand and troubleshoot your applications. With this new release, we've made several important updates and improvements to further streamline your development process. What […]
In this episode I'll have a look at the tool called pre-commit. It's a tool, as the name suggests, for setting up (and reusing) git pre-commit URLs.
Motivation Let’s say we’re working on a QML project that involves a TextEdit. There’s some text in it: here is some text We want to select part of this text and hit ctrl+B to make it bold: here is some text In Qt Widgets, this is trivial, but not so much in QML – we […]
Sometimes a signal fires too often, and, as a result, your user interface feels sluggish. A solution to this is often a timer to compress the signal. In this episode, I'll show you a class from KDToolBox which makes such code easier to read.
Add some colors and some additional information so your QDebug() are more useful and easier to spot.
You've reached the third and final entry of the Instantiating arbitrary Qt Quick components with JSON series. Part 1 and Part 2 can be found at their respective links. The first part focuses on the software design pattern used to dynamically instantiate components. The second one shows how to layout these dynamic components by incorporating […]
The class QMainWindow provides all the parts needed to create a main window for your application, namely toolbars, docking widgets, a menu bar, and menus. In this episode, we will look at how they all fit together.
Qt provides built-in dialogs for common use cases including file selection, color/font choosers, simple text input (like asking for names), message display, and progress indication. It also includes a framework for implementing wizards. This episode covers all these dialog types and demonstrates their practical usage in Qt applications.
In Qt, you can create a top level window, simply by providing nullptr as the parent. However, we still have a class called QDialog specifically for creating dialogs. Among other things it offers to wait for the dialog to be completed before your code continues execution.
Qt Test is a framework designed for unit testing applications and libraries built with Qt. It provides all the standard features commonly found in unit testing frameworks, making it easier to write unit tests for Qt-based projects. We're happy to introduce the QtTest Runner - a Visual Studio Code extension for running Qt Tests via […]
In this second episode on layout managers, we will discuss how to make widgets stretch, and how to get spaces into your layout.
We will discuss that both when you code it in C++, and when you do it in Qt Designer.
KDDockWidgets has launched its latest version 2.1. This release comes packed with over 500 commits, offering enhanced stability over its predecessor, version 2.0, without introducing any breaking changes. KDDockWidgets is a versatile framework for custom-tailored docking systems in Qt written by KDAB’s Sérgio Martins. For more information about its rich set of features, have a […]
In the last post of this series we learned that: erasing elements from the middle of a vector can be implemented, in general, via a series of move assignments, move constructions, swaps, destructions for types with value semantics, the exact strategy does not really matter for types with write-through reference semantics, the strategy matters, because […]
In the last post of this series we started exploring how to erase an element from the middle of a vector. We discussed that in principle there are several different possible ways to implement erase().For instance, a vector could move-assign over the elements to be erased: Alternatively, a vector could use rotations or some other […]
I was tasked to come up with a simple architecture for remote real time instantiation of arbitrary QML components. I’ve split my findings into 3 blog entries, each one covering a slightly different topic. Part 1 focuses on the software design pattern used to dynamically instantiate components. Part 2 shows how to layout these dynamic […]
The task was simple: Add double click to a push button - with the added bonus of it not emitting the normal clicked if there is a double click. OK, this sounds trivial, right? Well no, it wasn't entirely. To get it right you have to understand quite a bit of both signals/slots and the event system. This episode explains.
LUMA Vision is developing cutting-edge 4D digital imaging (i.e. real time 3D rendering) and navigation to enhance cardiologists' and electrophysiologists' visibility into the heart during intracardiac procedures. With KDAB's support, they are creating it by using Qt to tap into top-notch graphics technology. Watch the video to learn more.
In the last post of this series we discussed the usage of trivial relocation in order to optimize move construction followed by the destruction of the source. To quickly recap: objects of certain datatypes ("trivially relocatable" types) can be moved in memory by simply moving bytes; this can be used to optimize certain bulk operations […]
In this last episode on "Show me your IDE", we now look at visual studio code.