Qt comes with a number of container classes. But how do you use them properly, what are the constraints on items you put into them etc. etc.?
Regular expressions is a very powerful tool to parse strings and validate user input. Qt has support for regular expressions via the class QRegularExpression and its helpers.
In the previous posts of this series (if you've missed them: parts 1, 2, 3, and 4), we have learned about relocation and trivial relocation. We have explored what relocation means, what trivial relocation means, and how it can be used to optimize the implementation of certain data structures, such as the reallocation of a […]
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 our earlier blog, The Smarter Way to Rust, we discuss why a blend of C++ and Rust is sometimes the best solution to building robust applications. But when you’re merging these two languages, it’s critical to keep in mind that the transition from C++ to Rust isn’t about syntax, it’s about philosophy. Adapting to […]
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.
An over-the-air (OTA) update capability is an increasingly critical part of any embedded device to close cybersecurity vulnerabilities, allow just-in-time product rollouts, stomp out bugs, and deliver new features. We’ve talked about some of the key structural elements that go into an embedded OTA architecture before. But what about the back end? Let’s address some […]
Add some colors and some additional information so your QDebug() are more useful and easier to spot.
Building system images for embedded devices from the ground up is a very complex process, that involves many different kinds of requirements for the build tooling around it. Traditionally, the most popular build systems used in this context are the Yocto project and buildroot. These build systems make it easy to set up toolchains for […]
If you’ve been following our blog, you’re likely aware of Rust’s growing presence in embedded systems. While Rust excels in safety-by-design, it’s also common to find it integrated with C++. This strategic approach leverages the strengths of both languages, including extensive C++ capabilities honed over the years in complex embedded systems. Let’s delve into some […]
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.
We’ve explained some of the architectural elements of building your own firmware over-the-air (OTA) soution for IoT and embedded systems in a previous blog. But what about the hardware requirements? Or processes? Let’s explore issues that are essential to solve for a robust OTA solution. Maximizing flash longevity Modern devices rely on solid-state drives, which […]
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 […]
For agile projects, changes are a daily business, and parts of the project are often defined during the development process. But how to find out how much your project has changed and how to handle this, so you don't miss deadlines?