Skip to content

KDAB TV – Recent Videos KDAB's YouTube Channel: Qt, C++ and 3D tutorials, news and more

KDAB's YouTube Channel: Qt, C++ and 3D tutorials, news and more

KDAB as the global No.1 software consultancy for Qt, C++ and 3D applications and has been a relevant source for professional software developers for 20 years, offering a good mix of valuable information. As video content has become increasingly relevant, we have decided to offer regular, highly visible videos for professional developers using Qt, C++ and 3D technologies.

The channel offers tutorials for beginners and advanced developers presented by our experienced experts as well as show cases, C++, Qt and 3D related news, insights on events and trends. Click the tabs to explore.

KDAB TV – Latest

Blender x 3D Laser Effect x KUESA 3D Studio || #gltf #3d #realtime #iro #vulkan #tutorial #animation

This is Giuseppe's commentary edition. It's advised you watch Jesper's version first, which can be found here: 
https://www.youtube.com/watch?v=f7dlD10bhiI

Iterating over the values of a QMap or QHash traditionally happened by iterating over the key and then looking up the value using that key. Besides that this requires an additional lookup, it is also a bit clumsy. 

A much more elegant solution to the problem is structured bindings - a feature introduced in C++17. To use this out of the box, you need Qt 6.4 but this episode shows how you relatively easily can enable it for older Qt versions too.

Links:
* https://www.kdab.com/qt-range-based-for-loops-and-structured-bindings
* https://en.cppreference.com/w/cpp/language/structured_binding

The example code showcased in this video is available here:  https://github.com/KDAB/kdabtv/tree/master/Qt-Widgets-and-more/ranges

All QML tips and tricks videos : https://www.youtube.com/playlist?list=PL6CJYn40gN6jWHP5krsQrVGyYtKh3A3be

All Qt Widgets and more videos:
https://www.youtube.com/playlist?list=PL6CJYn40gN6gf-G-o6syFwGrtq3kItEqI

About the host:
The video is presented by Jesper Pedersen, who started with Qt back when Qt was widgets only and the version was 1.44, which gives him 21 years of experience with Qt. Since 2000 he has taught almost 100 Qt classes, ranging from Qt Widgets to QML. Heck, Jesper even taught a few classes on QTopia Core — Trolltech's initial attempt at creating a phone stack. Today Jesper holds a fancy business title, but that doesn't prevent him from coding both in his job and in his spare time.

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing and innovative software across embedded, mobile and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D and more.  https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrolment courses around the world. We are the market leaders for training in Qt, OpenGL and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are over 100 people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK and the USA. https://www.kdab.com/about/contact/
Sructural Bindings with Qt Containers [Commentary Edition]

This is Giuseppe's commentary edition. It's advised you watch Jesper's version first, which can be found here:
https://www.youtube.com/watch?v=f7dlD10bhiI

Iterating over the values of a QMap or QHash traditionally happened by iterating over the key and then looking up the value using that key. Besides that this requires an additional lookup, it is also a bit clumsy.

A much more elegant solution to the problem is structured bindings - a feature introduced in C++17. To use this out of the box, you need Qt 6.4 but this episode shows how you relatively easily can enable it for older Qt versions too.

Links:
* https://www.kdab.com/qt-range-based-for-loops-and-structured-bindings
* https://en.cppreference.com/w/cpp/language/structured_binding

The example code showcased in this video is available here: https://github.com/KDAB/kdabtv/tree/master/Qt-Widgets-and-more/ranges

All QML tips and tricks videos : https://www.youtube.com/playlist?list=PL6CJYn40gN6jWHP5krsQrVGyYtKh3A3be

All Qt Widgets and more videos:
https://www.youtube.com/playlist?list=PL6CJYn40gN6gf-G-o6syFwGrtq3kItEqI

About the host:
The video is presented by Jesper Pedersen, who started with Qt back when Qt was widgets only and the version was 1.44, which gives him 21 years of experience with Qt. Since 2000 he has taught almost 100 Qt classes, ranging from Qt Widgets to QML. Heck, Jesper even taught a few classes on QTopia Core — Trolltech's initial attempt at creating a phone stack. Today Jesper holds a fancy business title, but that doesn't prevent him from coding both in his job and in his spare time.

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing and innovative software across embedded, mobile and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D and more. https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrolment courses around the world. We are the market leaders for training in Qt, OpenGL and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are over 100 people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK and the USA. https://www.kdab.com/about/contact/

5 4

YouTube Video VVVqc0prVEpTWjVHN2V3SDJ1ZjA4dDBBLnhHTmtoOWF6a0JN

Sructural Bindings with Qt Containers [Commentary Edition]

Iterating over the values of a QMap or QHash traditionally happened by iterating over the key and then looking up the value using that key. Besides that, this requires an additional lookup, it is also a bit clumsy. 

A much more elegant solution to the problem is structured bindings - a feature introduced in C++17. To use this out of the box, you need Qt 6.4 but this episode shows how you relatively easily can enable it for older Qt versions too.

There is commentary edition of this video with Giuseppe D'Angelo as host. You can find it here:
https://www.youtube.com/watch?v=xGNkh9azkBM

0:00 Introduction
0:42 Returning two values from a class in the old days
1:48 Now returning a pair
2:12 Same thing with std:(Zunge)air
3:14 Now with structured bindings
3:52 Structured bindings with QPair
4:25 When are structured bindings interesting?
5:10 Iterating over a std::map using structured bindings
6:01 QMap/QHash and structured bindings
7:34 constKeyValueBegin()
8:05 Class asRange
10:08 Why not "const Container& container" - a discussion of lifetime
13:00 Adding an rvalue version
14:25 Implementing your own structured unpacking

Links:
* https://www.kdab.com/qt-range-based-for-loops-and-structured-bindings
* https://en.cppreference.com/w/cpp/language/structured_binding

The example code showcased in this video is available here:  https://github.com/KDAB/kdabtv/tree/master/Qt-Widgets-and-more/ranges

All QML tips and tricks videos : https://www.youtube.com/playlist?list=PL6CJYn40gN6jWHP5krsQrVGyYtKh3A3be

All Qt Widgets and more videos:
https://www.youtube.com/playlist?list=PL6CJYn40gN6gf-G-o6syFwGrtq3kItEqI

About the host:
The video is presented by Jesper Pedersen, who started with Qt back when Qt was widgets only and the version was 1.44, which gives him 21 years of experience with Qt. Since 2000 he has taught almost 100 Qt classes, ranging from Qt Widgets to QML. Heck, Jesper even taught a few classes on QTopia Core — Trolltech's initial attempt at creating a phone stack. Today Jesper holds a fancy business title, but that doesn't prevent him from coding both in his job and in his spare time.

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing and innovative software across embedded, mobile and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D and more.  https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrolment courses around the world. We are the market leaders for training in Qt, OpenGL and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are over 100 people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK and the USA. https://www.kdab.com/about/contact/
Structural Bindings with Qt Containers

Iterating over the values of a QMap or QHash traditionally happened by iterating over the key and then looking up the value using that key. Besides that this requires an additional lookup, it is also a bit clumsy.

A much more elegant solution to the problem is structured bindings - a feature introduced in C++17. To use this out of the box, you need Qt 6.4 but this episode shows how you relatively easily can enable it for older Qt versions too.

There is commentary edition of this video with Giuseppe D'Angelo as host. You can find it here:
https://www.youtube.com/watch?v=xGNkh9azkBM

0:00 Introduction
0:42 Returning two values from a class in the old days
1:48 Now returning a pair
2:12 Same thing with std:(Zunge)air
3:14 Now with structured bindings
3:52 Structured bindings with QPair
4:25 When are structured bindings interesting?
5:10 Iterating over a std::map using structured bindings
6:01 QMap/QHash and structured bindings
7:34 constKeyValueBegin()
8:05 Class asRange
10:08 Why not "const Container& container" - a discussion of lifetime
13:00 Adding an rvalue version
14:25 Implementing your own structured unpacking

Links:
* https://www.kdab.com/qt-range-based-for-loops-and-structured-bindings
* https://en.cppreference.com/w/cpp/language/structured_binding

The example code showcased in this video is available here: https://github.com/KDAB/kdabtv/tree/master/Qt-Widgets-and-more/ranges

All QML tips and tricks videos : https://www.youtube.com/playlist?list=PL6CJYn40gN6jWHP5krsQrVGyYtKh3A3be

All Qt Widgets and more videos:
https://www.youtube.com/playlist?list=PL6CJYn40gN6gf-G-o6syFwGrtq3kItEqI

About the host:
The video is presented by Jesper Pedersen, who started with Qt back when Qt was widgets only and the version was 1.44, which gives him 21 years of experience with Qt. Since 2000 he has taught almost 100 Qt classes, ranging from Qt Widgets to QML. Heck, Jesper even taught a few classes on QTopia Core — Trolltech's initial attempt at creating a phone stack. Today Jesper holds a fancy business title, but that doesn't prevent him from coding both in his job and in his spare time.

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing and innovative software across embedded, mobile and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D and more. https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrolment courses around the world. We are the market leaders for training in Qt, OpenGL and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are over 100 people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK and the USA. https://www.kdab.com/about/contact/

9 0

YouTube Video VVVqc0prVEpTWjVHN2V3SDJ1ZjA4dDBBLmY3ZGxEMTBiaGlJ

Structural Bindings with Qt Containers

GammaRay is an introspection tool that allows you to inspect and manipulate embedded Qt applications at runtime.

Here we have GammaRay attached to the Steam Deck running a QML based game called Voltair.

Watch this video to see how you can modify the application and get a quick preview of your change without recompiling it.

Download GammaRay https://github.com/KDAB/GammaRay
All GammaRay videos: 
https://www.youtube.com/playlist?list=PL6CJYn40gN6itybeSJb5FvRWOxVW5PCUX
Steam Deck info: 
https://store.steampowered.com/steamdeck
Voltair game info: https://google.github.io/VoltAir/doc/main/html/index.html#1 

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more.  https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/
GammaRay with Steam Deck Voltair Game as a Target

GammaRay is an introspection tool that allows you to inspect and manipulate embedded Qt applications at runtime.

Here we have GammaRay attached to the Steam Deck running a QML based game called Voltair.

Watch this video to see how you can modify the application and get a quick preview of your change without recompiling it.

Download GammaRay https://github.com/KDAB/GammaRay
All GammaRay videos:
https://www.youtube.com/playlist?list=PL6CJYn40gN6itybeSJb5FvRWOxVW5PCUX
Steam Deck info:
https://store.steampowered.com/steamdeck
Voltair game info: https://google.github.io/VoltAir/doc/main/html/index.html#1

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more. https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/

9 0

YouTube Video VVVqc0prVEpTWjVHN2V3SDJ1ZjA4dDBBLm9tV0VZTGU5eU5N

GammaRay with Steam Deck Voltair Game as a Target

To add more realism without baking huge textures you simply can bake ambient occlusion into vertex colors. The Iro Materials are directly capable of using vertex data. Of course, the result will look exactly the same in Blender, Maya and KUESA 3D. You simply need to move that single slider.

More about Kuesa 3D: https://www.kuesa.com

All KUESA 3D videos: https://www.youtube.com/playlist?list=PL6CJYn40gN6hVdcXHTtzzltmSvZ6eG590

All `The Making of the Cluster Demo`videos: https://www.youtube.com/playlist?list=PL6CJYn40gN6j6iZQK2QeZQTYl-RhytlaZ

About the host:
Timo Buske has his roots in the mobile gaming industry, working on several 3D engines and tools. He's the product manager of KUESA™ 3D.

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more.  https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/
Ambient Occlusion x Vertex Colors x KUESA 3D Studio || #gltf #blender #workflow #vulkan #tutorial

To add more realism without baking huge textures you simply can bake ambient occlusion into vertex colors. The Iro Materials are directly capable of using vertex data. Of course, the result will look exactly the same in Blender, Maya and KUESA 3D. You simply need to move that single slider.

More about Kuesa 3D: https://www.kuesa.com

All KUESA 3D videos: https://www.youtube.com/playlist?list=PL6CJYn40gN6hVdcXHTtzzltmSvZ6eG590

About the host:
Timo Buske has his roots in the mobile gaming industry, working on several 3D engines and tools. He's the product manager of KUESA™ 3D.

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more. https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/

5 0

YouTube Video VVVqc0prVEpTWjVHN2V3SDJ1ZjA4dDBBLlprZWttSXBOTURR

Ambient Occlusion x Vertex Colors x KUESA 3D Studio || #gltf #blender #workflow #vulkan #tutorial

As an experiment we've added the same demo application on the same hardware, an iMX 8 board but developed with different toolkits.
They can all do the same job in our example so why would you choose one or another?
Each one has their plus and minuses:
- Qt is an extablished toolkit already widely used in Embedded, it's cross-platform and has good tooling
To find out more go to kdab.com
- Slint is scalable from bare metal to Linux, OpenGL and web, it's open source and commercial with flexible options too and it has tooling integration with the UI (ex: live preview)
To find out more go to slint-ui.com
- Flutter has a permissive open source licence, very good tooling and is cross-platform too.
To find out more go to industrialflutter.com

We can help you pick the toolkit that's right for you. Contact us: info@kdab.com

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more.  https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/
Qt, Slint and Flutter Demo

As an experiment we've added the same demo application on the same hardware, an iMX 8 board but developed with different toolkits.
They can all do the same job in our example so why would you choose one or another?
Each one has their plus and minuses:
- Qt is an extablished toolkit already widely used in Embedded, it's cross-platform and has good tooling
To find out more go to kdab.com
- Slint is scalable from bare metal to Linux, OpenGL and web, it's open source and commercial with flexible options too and it has tooling integration with the UI (ex: live preview)
To find out more go to slint-ui.com
- Flutter has a permissive open source licence, very good tooling and is cross-platform too.
To find out more go to industrialflutter.com

We can help you pick the toolkit that's right for you. Contact us: info@kdab.com

Every month our newsletter is featuring technical blogs on Qt, C++ and 3D topics: https://www.kdab.com/development-resources/sign-up-for-our-newsletter/

About KDAB:
KDAB offers experienced software experts to help you deliver functional, high-performing, and innovative software across embedded, mobile, and desktop platforms for projects using C++, Qt, QML/Qt Quick, OpenGL, Qt 3D, and more. https://www.kdab.com/software-services

KDAB experts regularly take time out to deliver KDAB’s world class training, in-house or at open enrollment courses around the world. We are the market leaders for training in Qt, OpenGL, and C++.

Contact us to find out more at training@kdab.com or visit our website: https://www.kdab.com/software-services/scheduled-training/

We are 100+ people, located all around the world. Our Head Office is in Sweden and we have other offices in Germany, France, the UK, and the USA. https://www.kdab.com/about/contact/

31 7

YouTube Video VVVqc0prVEpTWjVHN2V3SDJ1ZjA4dDBBLjlLeUdrMU9NSjNv

Qt, Slint and Flutter Demo

FacebookTwitterLinkedInEmail