Today was KDAB Training Day just before Qt World Summit 2023. Thanks for attending! Your presence really made it awesome. We're already looking forward to the next one and can't wait to have you there. Keep an eye out for updates. See you soon!
This month, we began adding our Introduction to Qt Widgets series to YouTube. It's the same content regularly taught around the world by KDAB engineers. The best part? You're getting it absolutely free.
We just released CXX-Qt version 0.6! CXX-Qt is a set of Rust crates for creating bidirectional Rust ⇄ C++ bindings with Qt. It can be used to integrate Rust into C++ applications using CMake or build Rust applications with Cargo. CXX-Qt provides tools for implementing QObject subclasses in Rust that can be used from C++, […]
Introduction When someone with an OpenGL background begins using Vulkan, one of the very common outcomes - beyond the initial one of "OMG how much code does it take to draw a triangle?" - is that the resulting image is upside down. Searching the web for this will give many hits on discussions about coordinate […]
This episode introduces you to the event handling system of Qt and shows two examples of it: preventing windows from being closed when the user hits the cross; a simple paint program where you paint by dragging the mouse around
In this second episode on understanding what goes on behind the scene, Jesper will debug his way into an application using signals and slots to see the flow of information. He also introduces you to the GammaRay tool.
Have you ever wondered what Q_OBJECT really is? How "public slots" can be valid C++ syntax, what happens when you call emit, and whether signal emission results in the slot being executed asynchronously? Watch this episode to get all those answers.
In this episode, we will show you how to add signals and slots to your own classes. The video includes: Custom Slots, Custom Signals, Compiling with moc.
With Qt's signals & slots mechanism, you can also connect to a lambda expression.
In this episode, you will learn how to do that, and equally important, what the pitfalls are when you do that.
Before Qt5 was released, the signal & slots mechanism was somewhat different. This episode will tell you what it looked like back then. There are two purposes to that: (1) You will likely find some references on stack overflow telling you something using that syntax, and (2) it helps enlighten the story about the Qt5 way of doing it.
Qt's signal and slots system is a cornerstone feature enabling object communication throughout Qt applications. This episode introduces the fundamental concepts of signals and slots, demonstrates how to connect signals to slots for event handling and data flow, and covers the different connection methods available for establishing these communication pathways between objects.
One of the most important classes in Qt is without a doubt QWidget, which is at the core of any UI (in the widgets world). QWidget has two purposes: (1) being the super class for any widgets, and thus, providing the API's for mouse, key, and focus handling among a lot of other things, and (2) being a "canvas" where you can lay out other widgets on.
In this video, we will learn what the responsibility of the class QObject is. We will most noticeably look at the parent/child relationship. In this context we will learn what should be allocated using new and what shouldn't.
In a previous blog we demonstrated the most straightforward method to optimize Visual Studio Code for a Qt / C++ environment: simply let the tools do all the work! The example GitHub project we discussed automatically installs both the Microsoft C/C++ and clangd extensions into VS Code. You might wonder why you need both C++ […]
In this episode, Jesper will show you how to navigate the Qt help text most efficiently. In addition, he will also show how you get to the header files.
In this episode, we will compile the application using both CMake and QMake.
This first episode introduces Qt Widgets development with a "Hello World" example and covers foundational concepts. Jesper demonstrates the basic Qt Widgets application structure, explains the event loop mechanism that drives Qt applications, discusses the QApplication class and its role in managing the application lifecycle, and shows how to run the program.
In the final part of our series on 3D in Qt 6, we review the tooling around 3D, and how the different approaches available suit different business and technical needs. We look at what content creators typically deliver to us as developers, what operations and actions we might do with that, and how iterative development and revisions to content impacts us a developer.
This episode of KDAB News includes: Interview with KDAB's Till Adam & Ferrous Systems' Florian Gilcher - Why Rust?; Rust Training Courses; Heaptrack 1.5 Released; Tip of the month - QPointer
In this video, we review the evolution of APIs to access graphics hardware, and the evolution of Qt rendering in parallel. Then we look at the abstractions and features created by Qt to take advantage of modern graphics hardware while remaining portable to a wide range of platforms. Finally, we look at what this means for integrating our own or third-party renderers into Qt 6.