KDAB is a Gold Sponsor at this year’s Meeting C++, a highly recommended 3-day hybrid event for the European C++ community. Locate the KDAB booth on the entrance level and talk to experts Ivan Čukić and Milian Wolff on any of the event days. At the booth, you will also get a live demo of […]
Choosing the right hardware for an embedded Linux device is so much more important than your software choices. Making the wrong decision can lead to significant costs and disruptions if you have to change hardware mid-development. Read this blog first before you solidify your choice. Custom or commercial? Choosing between a custom or commercially available […]
This video shows how to implement a DBus server using Qt, in order to communicate between two processes. The benefits of using DBus include the fact that it's a standard communication protocol on Unix systems especially, and the ability for Qt to generate classes the client can use to make calls in a type-safe way. For now we'll test the server using the qdbus command-line client, the next video will show how to make calls from C++.
We’re pleased to announce the release of KD Reports 2.3.0, the latest version of our reporting tool for Qt applications. This marks our first major update in two years, bringing several bug fixes and new features that further improve the experience of generating reports. What is KD Reports? KD Reports is a versatile tool for […]
Recap In Part 1, we covered PCM audio and superimposing waveforms, and developed an algorithm to combine an arbitrary number of audio streams into one. Now we need to use these ideas to finish a full implementation using Qt Multimedia. Using Qt Multimedia for Audio Device Access So what do we need? Well, we want […]
In this video, you will see an alternative to the asynchronous handling done in the previous video. If the socket is managed by a separate thread, it becomes possible to implement the protocol in a synchronous manner, which is much easier.
In this video, you will learn about a common programming pattern called the job pattern, useful for asynchronous operations (for instance, driven by the Qt event loop) such as socket communication, or any other operation that emits signals upon progress and completion.
Adopting proven practices like continuous integration (CI) and continuous deployment (CD) is a key part of modern software design. These methodologies enhance software quality and team productivity while shortening development cycles – what’s not to love? Arguably, it’s the short-term pain of getting these systems installed and configured for your environment and the long-term pain […]
In this video, you will learn how to use the JSON classes in Qt (5 or later) to implement a communication protocol between two processes. Special care is taken not to block the GUI thread in the graphical client application, using asynchronous handling only (via signals and slots, and a queue of pending requests).
In C++20, the standard library introduced new synchronization primitives: std::latch and std::barrier. These are the utilities designed to coordinate between concurrent threads. What is a synchronization primitive? In concurrent programming, synchronization primitives are the fundamental tools that help in managing the coordination, execution order, and data safety of multiple threads or processes that run concurrently. […]
In this video, you will learn how use Qt (5 or later) to develop a server and a client application which communicate using a local socket. You will learn how to handle the various issues that arise from systems made of multiple processes. For instance, what if the client tries to connect before the server is running? What if the server is restarted? What if the server crashes? What if the server is started twice?
This video shows an application that makes synchronous (blocking) and asynchronous (non-blocking) calls from the main thread of a graphical Qt application, and how this affects the user experience.
Desktop software has many differences from mobile and embedded applications but one of the biggest and most obvious is the screen. How can you take advantage of all that real estate for your application? Six considerations for managing the screen in your desktop application Choosing the right GUI framework Use a flexible GUI framework that […]
This video introduces the series, defines the types of inter-process communication and the technical alternatives that will be presented, and advises on what are the things you should know or learn before watching this video series.
Motivation When using Qt Multimedia to play audio files, it’s common to use QMediaPlayer, as it supports a larger variety of formats than QSound and QSoundEffect. Consider a Qt application with several audio sources; for example, different notification sounds that may play simultaneously. We want to avoid cutting notification sounds off when a new one […]
Creating applications for cross-platform compatibility is a modern best practice. It increases deployment flexibility and allows applications to reach a wider audience. However, doing it properly can involve some trial and error. At KDAB, we’ve built many multiplatform desktop applications. Here, we’ve compiled a few insights from that process to help you build better software. […]
Qt has a property system that is used from many places, including Qt Designer, QML, and other language bindings. It can, however, also be very useful on its own, as in the example I show towards the end of this episode. Watch this episode to get a better understanding of how it all fits together.
The class QVariant is a truly important class in Qt, which offers the possibility to provide anything to a function, or return anything from one. If you know modern C++, then it is a bit like std::any, and if you are more familiar with plain C, then you will find some resemblances to its union.
CppCon is the annual, week-long face-to-face gathering for the entire C++ community – the biggest C++ event in the world. This year, CppCon takes place in Aurora, Colorado, near the Denver airport. Including multiple diverse tracks, the conference will appeal to anyone from C++ novices to experts. At CppCon, you can expect interesting talks and […]
Qt offers a rather wide spectrum of classes for accessing contents of files, including reading and writing bytes to parsing XML, JSon, and CBor files. In addition to that, it also has useful API's for copying files, getting file information (like is it readable), and traversing whole directories. Learn about all that and more in this episode.