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.
We just released KDChart version 3.0.0! KDChart is a comprehensive business charting package with many different chart types and a large number of customization options. We are constantly improving the package, and have been doing so for years. This is the first release of KDChart that supports Qt 6, and both Qt 5 and Qt […]
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.
For years, we at KDAB have been using Buildbot as our build and continuous integration system. Gerrit hosts all our projects and is our code review platform. Our deployment of Buildbot and build machines has naturally grown over the years. It builds hundreds of configurations and up to a thousand builds daily, but issues with […]
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.
Free and Open-Source Software enables energy conservation through user autonomy (installing only needed software, using aging hardware longer) and transparency (inspecting energy demands). This talk explores how FOSS values directly influence software sustainability, announces the new FOSS measurement lab at KDAB Berlin, and presents three steps to Blauer Engel eco-certification.