Better_Software_Header_Mobile Better_Software_Header_Web

Find what you need - explore useful information and developer resources

Areas of Interest

Searching…

842 results

Previous videos showed exporting individual C++ objects to QML. This video covers something related but different: exposing C++ classes to QML so QML can create instances. We'll start with non-GUI classes; the next video will cover GUI classes.

This video reviews the changes in Qt 3D in recent and upcoming releases of Qt, mainly 5.14 and 5.15, along with plans for the Qt 6 timeline. It looks at how Qt 3D compares with the upcoming Qt Quick 3D. Finally, it looks at upcoming changes in Kuesa, an extension to Qt 3D for integration with authoring tools

Any non-trivial Qt application uses the model/view/controller framework, a design pattern separating data management from UI. This video focuses on the "model" aspect that interacts directly with data. Models are central to Qt across all UI stacks (Widgets, Quick, remote objects). While custom views are rare, developing custom models is very typical.

It can visualize the stack of models for you, but there is one thing you better remember in your code --watch this video to find out what it is! :)

Sometimes views or delegates need to ask questions of the source model at the bottom of a proxy model stack. While the previous video showed using custom roles for cell-specific data, this video demonstrates a better approach for non-cell-related data: traversing proxy models yourself to reach the actual source model.

Got a stack of proxy models where there is a subtle bug somewhere in there? No worries --GammaRay to the rescue! It can visualize the stack of models for you, but there is one thing you better remember in your code --watch this video to find out what it is!

Remember discussing QML properties 25 videos ago? Qt allows you to define properties in C++ for QObject subclasses by describing their type, name, and read/write methods. This final module video covers the Qt Property System, its usage, and how it fits the bigger picture. Bonus: how QVariant relates to the property system.

QVariant is a cornerstone Qt class used in the property system, model/view, and C++/QML data exchange. It's a type-erased container similar to std::any, storing objects of almost any type while remembering the stored type. This video demonstrates how QVariant works in practice.

"unresolved external symbol 'public: virtual struct QMetaObject ...'" - a mysterious linker error that sometimes occurs when working with QObjects and signals/slots. This video explains what causes it, how to solve it with just one click, and what happens behind the scenes where the build system meets signals and slots.

QObject implements a huge number of features: properties, events, signals and slots, automatic memory management and much more. In this module we are going to explore how they work and how they map to all the QML knowledge that we have built so far.

"When the user clicks this button, run this code" is one of programming's oldest problems. Qt's solution is the signals and slots mechanism: buttons emit signals when clicked, slots contain the code to run, and connections link them together. This video explains creating such connections in C++.

This video continues the signals and slots discussion, exploring three connection methods: pointer to member functions (PMFs), string-based SIGNAL/SLOT macros, and function objects (including lambdas). We'll examine the PMF syntax introduced in Qt 5 and compare it against the string-based approach, discussing the pros and cons of each.

Did you know that you can connect a QObject signal to a lambda function, or to any free function or function object, for what it's worth? It's extremely convenient, but it comes with its own set of "gotchas" that we must understand. In this video we'll explain the syntax and reason behind the good use cases of connecting to a lambda function instead of connecting to a "regular" slot.

In the previous videos of this module we have learned how signals and slots work. We have also learned how to connect an existing signal to an existing slot (in all its variations). In this episode, we will build up on that knowledge and discuss how to declare and implement custom signals and slots – and why we would want to do that!

In this edition: Qt 6 release, new versions of Qt Creator and Qt Design Studio, and an outlook for 2021 interview with Kalle Dalheimer (President and CEO KDAB) covering a year in review, smart security, energy efficient software, industry demand, UI frameworks, and KDAB hiring. Also features Library of the Month: QtKeychain.