This talk presents Unicode string handling foundations in Qt. We'll explain the Unicode standard, why it's necessary for user interfaces, and discuss Qt's low-level classes (QChar, QString) and how they map to Unicode concepts. We'll cover Qt's higher-level facilities including collation, grapheme cluster iteration, and locale-aware formatting—all essential for proper user interfaces.
Crowdsourced QA is rising due to faster time-to-market, reduced costs, higher quality, and increased release confidence. However, disadvantages exist, like lacking code coverage information from testers. This doesn't mean black-box testing and code coverage are mutually exclusive.
In the current software development landscape, low-code and no-code application frameworks are gaining traction, as they allow non-developer professionals (such as designers and domain experts) to directly contribute to digital products.
We experimented with speeding up C++ compile times. This talk compares Make vs. Ninja, Clang vs. GCC, the effects of CCache and Precompiled Headers, all using CMake. Some material is Linux-specific, while other findings apply to Mac and Windows.
Following a previous clang-tidy episode, this video covers fine-tuning which checks to enable, including some bad surprises encountered. The result is an improved .clang-tidy file with additional checks, plus a script to generate the file and avoid common problems.
This talk goes through the different approaches on how Python can boost your project, combining both the languages under the Qt framework, extending Python, and embedding Python in your C++ application, and code. It also covers features in the Qt for Python project, which add new functionality on top of the Qt API.
This episode of KDAB News includes: 10 KDChart, KDReports, KDSoap released under MIT licenseQt Creator 8 release; CoCo 6.0 and Testcenter 3.0 released.
The pandemic forced many teams to work and collaborate remotely. Choosing the right tools can help to overcome those challenges. One of those is QML Hot Reload, which allows applying code changes within running apps on remotely connected devices.
CMake's AUTOMOC runs moc automatically but compiles all moc files together, causing extensive recompilation when touching any Q_OBJECT header. Including moc files in .cpp files reduced recompile time from 22 seconds to 5 seconds. This episode includes a script to automate this plus a git hook to ensure you always include moc files.
QML can be used for desktop apps, but gaps are easily visible for longtime widget users. This talk highlights these gaps and shares ideas for closing them, building on Qt Desktop Days 2020's "Insights From Building Desktop App Using QML." It focuses on optimizing QML for desktop, sharing experiences from the Scrite project's unique solutions to interesting problems encountered over six months.
Rust's slogan "Fast, Reliable, Productive – Pick Three" captures its appeal as a modern programming language offering unparalleled compile-time safety with C/C++ matching performance. Given C/C++'s complexities and security issues, major tech companies are adopting Rust as an alternative, evidenced by the Rust Foundation's formation. KDAB has explored solutions allowing existing Qt developers to integrate this technology.
You can speed up Qt applications almost for free by adding a single define to enable QStringBuilder. The catch: your code may fail to compile or crash in some places, but clazy will warn about potential crashes and the compiler will catch errors.
In this talk, I will look back to 8 years of development and maintenance of “JSON for Modern C++”, an MIT-licensed library to support JSON in C++. It started as a small side project and is now used by Apple, Microsoft, Google, Volkswagen, and Daimler and received ~25k stars on GitHub. I will discuss the challenges and problems along the way, the lessons learned, and look into the future of the project.
Most embedded devices need update mechanisms for safety and new functionality. This talk examines common update concepts, their advantages, disadvantages, and fail-safety. We'll demonstrate using container-based updates with Torizon, controlled from a Qt application.
Qt comes with lots of classes relating to strings these days, including QString, QStringView, QStringLiteral etc. It comes with so many that I lost track, so maybe it is time to call my good friend Peppe. In this episode we will discuss what you need to know to get it right at least 95% of the cases, without knowing it all.
The KDE Community has developed Qt software for 25 years, porting code across all major Qt versions. With Qt 6's release, the next transition presents challenges and opportunities. This talk covers the work done and planned for Qt 6 transition, challenges faced, design decisions, and how Qt 6's new features benefit KDE, helping attendees plan their own porting projects.
KDToolBox is KDAB’s collection of miscellaneous useful C++ classes and stuff, available on GitHub under a very permissive open source license (MIT). There’s a lot of goodies in there: from a single-shot QObject::connect(), to a table model to list model flattener proxy, to a UI watchdog class.
Showing a large amount of text is a common problem for certain types of applications (IM apps, for example). Generally one will start by using a TextArea for this – which works fine but does not really scale once you are handling hundreds of thousands of lines of text. Lets discover if there is a better way of handling large (virtually unlimited) amount of text in QML.
In the previous two episodes we looked at Qt's support for rendering items in the model/view framework. In this episode we will turn our attention to custom delegates for editing items. In the KDAB gift shop we will receive a ready to use delegate for choosing items with a combo box.
Ever struggled with different compiler versions across team PCs or heard "Works on my machine!" while software crashes on targets or CI? This shows how to set up Qt environments in Docker, ensuring all developers and CI use the same up-to-date development environment.