Rust has been the most beloved programming language in StackOverflow surveys since 2016, offering safer and easier programming than C++. It's an ideal replacement for C++ backend code in Qt applications. CXX-Qt enables idiomatic integration that seamlessly works with existing C++ and Rust code.
Whether you're new to unit testing or already write tests, this episode shows how to set up Qt's testing framework and maximize Qt Creator's testing features. Covers Qt's framework versus others, test cases with QCOMPARE, table-driven testing, Qt Creator integration, debugging tests, and CMake integration.
Unless you've never used QTableView, you've likely struggled with column sizing: avoiding blank space, stretching specific columns, fitting content, allowing resizing, avoiding scrollbars, or preventing excessive vertical space. This example demonstrates solutions to all these common problems.
Qt is a high quality library, but it is also massive in number of features. This massive number results in a higher likelihood that there are bugs that go unnoticed lying around in its less frequently used features or combination of features. Our friends at qgis.org hired us to solve some of those issues that […]
In this edition we have: Cxx-Qt Rust Bindings for Qt - Interview with Andrew Hayzen, KDAB, Squish 7.0 released,
Building Qt isn't that hard, and doing so helps you with more accurate position information when you debug your way in to Qt itself.
In this video I'll show you the steps required to do so.
At KDAB, we have been investigating how to integrate Rust with Qt in a safe and idiomatic way. The solution we are currently working on is called CXX-Qt. It's available in the GitHub and on crates.io. This blog post discusses the journey of CXX-Qt -- where it started, where it can be used right now, […]
When writing Qt ModelView models, should you check indexes in methods like rowCount? While Qt itself won't give you invalid indexes, you or coworkers might write broken proxies or interact incorrectly with models. This video presents macros to help validate indexes before using them.
Part 2 adds Firebase push notifications enabling the mobile app to receive messages even when not running. The tutorial covers reviewing part 1, addressing notification issues for closed apps, adding FirebaseAdminQt library for server functionality, creating a Firebase project, implementing push notifications, configuring the client app with Firebase C++ and FirebaseQt wrapper, and integrating everything with QML.
QMessageBox is missing a critical feature (IMHO): a "do not show again" button that makes Qt record my preference, so it doesn't ask me for my preference over and over again. In this episode, I'll implement a drop-in replacement that has this feature.
This video will demonstrate how to create both a mobile application and its web backend, using only Qt and C++ technologies.
A couple of weeks ago, we guided you through setting up a chat application and server in our first blog of this series. This is the second and final blog of this Qt Allstack series. Firebase Messaging Now that we have a functional chat application, it’s time to add real world features, like push notifications. […]
Git supports running local scripts at different times, including during commits or pushes. This episode discusses useful hooks including preventing commits with FIXME's, ensuring use of specific classes like KDVTableView instead of QTableView, and avoiding QDate::currentDate which breaks unit tests.
There are a million different ways you can use git. Sometimes it's useful to look someone else over the shoulder and see how they do it. In this video I'll show you my workflow.
Ever wished you could avoid a Qt application's freezing while it's querying a database, without the complexity of threads? This video shows how to keep an application responsive with the Asynchronous SQL library. Watch the author of the library, Daniel Nicoletti, show you how it works.
Writing mobile apps can be a lot of fun, especially with Qt and QML. But if your background is all about C++ and Qt, writing the entire required stack for a mobile app can be challenging. Adding push notifications, storing information, and having to write that with another language and framework might make you give […]
Close your eyes and imagine some of your most complex code. In that code, you likely calculate a lot of values. But for some code paths, they might not even be needed. It is, however, too difficult to untangle the code. So, the values are really only calculated when needed, and only so one time. In this video, I discuss a class I've implemented to tackle that exact problem.
This KDAB News edition includes an interview with Leon Matthes on KDBindings reactive programming and data binding in C++, Qt 6.3 Alpha release, and Tip of the month.
Here at KDAB, we recently published a library called KDBindings, which aims to reimplement both Qt signals and slots and data binding in pure C++17. To get an introduction to the KDBindings implementation of signals and slots, I recommend that you take a look at the KDBindings Getting Started Guide. It will give you an […]
Let's look at some useful techniques involving qDebug, among others: Making qDebug() included by default, supporting your own types, and sectioned debugging.