A few days ago Marc Mutz, colleague of mine at KDAB and also author in this blog, spotted this function from Qt's source code (documentation): Apart from the mistake of considering empty strings not uppercase, which can be easily fixed, the loop in the body looks innocent enough. How would we figure out if a […]
Have you ever noticed code highlighting disappearing in Qt Creator for some projects, without any apparent reason? Can't get Ctrl+Click to work on any class name or function name anymore? Maybe you have ignored it at first, got used to it, and decided it's just one of those things that just "happen sometimes"; or maybe […]
This video shows how to recreate the famous "Hello World" example using Qt Quick and QML. You will learn how to actually go from a QML source file to having a standalone running executable, that indeed shows the "Hello World" text.
Introducing the most basic visual transformations that you can apply to items in a Qt Quick scene. Any visual item can be scaled, rotated, or made translucent by acting on certain properties. This video explains how these properties work, and how visual transformations are propagated to children elements.
The transformations introduced in the previous video are not everything that Qt Quick offers. Sometimes we may need to rotate an item around an arbitrary point, or shear it using a custom 4x4 matrix. This video will feature an example of a custom visual transformation: we will create a very simple analog clock by rotating two images around a custom point.
User interfaces are built by positioning controls on screen. While changing x/y coordinates works for individual items, it doesn't scale for entire interfaces. Layout managers automatically handle positioning and sizing. This video introduces Qt Quick's anchor layouts - the simplest yet most common system. Anchors "glue" element sides together, making it easy to place elements side-by-side or align within parents.
This video discusses the dreaded "binding loop detected" warning that comes from the QML engine. Sometimes, it's pretty clear that we have created a loop (property A depends on B, which depends on A) and we can easily fix our code. Some other times, especially when anchor layouts are involved, this is not so clear. Watch this video for an explanation of what is going wrong and how to fix it.
Qt Quick offers more than simple colored rectangles with "color: 'red'". This video demonstrates various color specification methods including HTML hex-strings and normalized RGB floating point values, plus creating gradients in Qt Quick for more sophisticated visual effects beyond basic solid colors.
While the concept of multithreading may be straightforward, code with threads is responsible for some wicked bugs, which can be nearly impossible to reproduce or track down. This makes writing bullet-proof code using threads a tall order. Let's look a little deeper into why that is. First, you need better than average knowledge about the […]
Welcome to the first edition of KDAB News, the news update for professionals working with Qt, C++ and 3D technologies like OpenGL, Vulkan etc.
Continuing our blog series about KDToolBox, this time we will discuss UiWatchDog, a keepalive monitor for the GUI thread. Alive? A fundamental rule when writing applications in event-driven UI frameworks such as Qt is: do not ever block the GUI thread! The GUI thread is also usually called the main thread of the application -- […]
Software developers like tools, and in particular tools that make them more productive. So in this blog post, I am going to share with you some of the experiences some of us here at KDAB have had using Visual Studio Code for Qt development. Motivation of using Visual Studio Code instead of Qt Creator The […]
Right from the start, unu wanted to add a stylish, first-class embedded high-res display to their second generation electric scooter. Like many top-class engineering companies, unu didn’t have in-house expertise for building a modern UI, so they decided to partner with KDAB to build a modern UI based on Qt. In this video you learn […]
KDDockWidgets is an effort by KDAB to provide an advanced docking system for Qt. Throughout the years KDAB has contributed and funded QDockWidget development. Sadly, this wasn't without pain: each change took many days to implement and an equal amount of time to fix regressions. QDockWidgetmixes GUI code with logic/state in a spaghetti manner, making […]
This video showcases an exercise from our QML training course, where students are asked to reproduce a simple UI using Qt Quick and QML. As a side product, they learn more about positioning Qt Quick elements in a scene.
It is often said that QML is a declarative programming language. But what does it mean? A cornerstone of the meaning is the ability of properties to be linked to each other, creating so-called property bindings. In this video we explore the semantics of bindings across different elements.
It is often said that QML is a declarative programming language. But what does it mean? A cornerstone of the meaning is the ability of properties to be linked to each other, creating so-called property bindings. In this video we will explore the semantics of bindings across different elements.
This video showcases an exercise from our QML training course, where students are asked to reproduce a simple UI using Qt Quick and QML. As a side product, they learn more about positioning Qt Quick elements in a scene.
This video showcases an exercise from our QML training course, where students are asked to reproduce a simple UI using Qt Quick and QML. As a side product, they learn more about positioning Qt Quick elements in a scene.
The first in a video series that teaches the foundations of programming with Qt Quick / QML. The content is extracted from our highly rated "Introduction to QML" training course regularly taught around the world by KDAB engineers. This video shows how to recreate the famous "Hello World" example using Qt Quick and QML. You will learn how to actually go from a QML source file to having a standalone running executable, that indeed shows the "Hello World" text.