Since we first announced it last year, our Vulkan wrapper KDGpu has been busy evolving to meet customer needs and our own. Our last post announced the public release of v0.1.0, and version 0.5.0 is available today. It's never been easier to interact with modern graphics technologies, enabling you to focus on the big picture […]
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 […]
Have you ever wondered what the difference is between QWidget::repaint() and QWidget::update()? You may even have heard that update events collapsed into just one event in the event loop, which might make you ask the question on whether there are other events merged together. Let's debug into the Qt source code to get an answer.
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.
The container classes introduced in Qt 4 (Tulip, for the aficionados) had an interesting optimization: the ability to turn certain operations on the contained objects into byte-level manipulations. Example: vector reallocation Consider the reallocation of a QVector<T>: when the vector is full and we want to insert a new value (of type T), the vector […]
This episode of KDAB News includes: Servo for Qt - Interview with Andrew Hayzen and Magnus Groß; Qt 6.7 released; Hotspot 1.5 released; Embedded World 2024 Impressions; Tip of the month - ConnectionEvaluator in KDBindings; Announcements.
Hotspot is a standalone GUI designed to provide a user-friendly interface for analyzing performance data. It takes a perf.data file, parses and evaluates its contents, and presents the results in a visually appealing and easily understandable manner. Our goal with Hotspot is to offer a modern alternative to perf report, making performance analysis on Linux […]
In the two previous posts (Part 1 and Part 2), we looked at how to build bindings between C++ and Rust from scratch. However, while building a binding generator from scratch is fun, it's not necessarily an efficient way to integrate Rust into your C++ project. Let's look at some existing technologies for mixing C++ […]
In this video, we talk to Aiśwarya Kaitheri Kandoth (Aish) who tells us about the growth of free software in Kerala, India, and of her role in the take-up and evolution of GCompris in schools there.
The importance of updating your product after it’s in the field cannot be overstated. Not only is it essential for customer satisfaction with feature updates and bug fixes, but also for addressing security vulnerabilities. In this post, we’ll look at some key considerations and methodologies for updating embedded systems. Selecting an update approach Choosing the […]
Complex multi-step processes are not rare when deploying a mature multi-executable application to an embedded target. In the first part of this video, Christoph shows a quick template script that you can use to swiftly deploy multi-app setups to your target. In a the longer, second part, Qt-Creator target configurations are explained in a tutorial. Last, you will learn how nightlies helped not only for development, but post-hoc debugging.
In this video, Christoph demonstrates a high-precision measurement demo utilizing Kistler's highly sensitive sensors to measure force. Kistler, a Swiss company, specializes in crafting top-tier piezoelectric sensors for measuring industry-specific physical parameters like force, acceleration, pressure and mechanical strain.
Simon Hausmann from Slint talks about how KDAB and tQCS revamped the user interface of SK Signet's top electric vehicle charger. This app plays video ads while the car charges. Video playback is handled by FFmpeg, and networking is managed with Curl. The product comes in 15-inch and 32-inch screen options with dynamic dark/light mode.