This is the first in a series of blog posts on QStringView, the std::u16string_view equivalent for Qt. You can read about QStringView in my original post to the Qt development mailing-list, follow its status by tracking the "qstringview" topic on Gerrit and learn about string views in general in Marshall Clow's CppCon 2015 talk, aptly […]
In the last days, I was once again trying to convince fellow programmers that there's no such thing as a "benign" data race. This is a recurring theme, in particular fueled by the docs of MSVC and Intel x86, which basically seem to say "you don't need atomics here". I perused the excellent papers Benign […]
The last post from my colleague Marc Mutz about deprecating Q_FOREACH caused quite an uproar amongst the Qt developers who follow this blog. I personally feel that this was caused fundamentally by a perceived threat: there is a cost associated to porting away a codebase from a well-known construct (Q_FOREACH) to a new and yet-undiscovered […]
In this article, I will take a look at one of the fundamental concepts introduced in Alex Stepanov and Paul McJones’ seminal book "Elements of Programming" (EoP for short) — that of a (Semi-)Regular Type and Partially-Formed State. Using these, I shall try to derive rules for C++ implementations of what are commonly called "value […]
Android Things is Google’s answer to creating an environment for IoT devices. Take a slimmed down Android build, add some sensor-specific APIs, and provide it on a number of powerful pre-integrated micro-boards and you have a ready-made platform for building a host of upcoming IoT devices. Android Things can take advantage of many existing Android […]
On December 1st, KDAB’s Kévin Ottens and David Faure co-hosted a one day Meet Qt in Lyons, with The Qt Company and Witekio. The event was booked out with 50 people attending, confirming the growing community of Qt users in France. Participants were given plenty of opportunities for questions throughout the day and much appreciated […]
Functional Safety is the term used for systems designed to minimize risk to human health. But there’s a dilemma in today’s tech-driven world. We are more reliant than ever on software to control our planes, trains, cars, and boats, to operate our medical equipment, to process our food, to clean our water, and to power […]
For today's blog I would like to share with you the little adventure I had when fixing a very strange bug in Qt. Pop quiz Don't think about this too much, just guess: what does this QML snippet print? There are no JavaScript semantic tricks involved; and using either == or === does not change […]
GammaRay is a high-level runtime introspection tool for Qt applications. In this talk we will look at a number of real-world debugging and profiling problems and how the capabilities provided by GammaRay help you with those. When creating applications we strive to use higher-level frameworks to obtain results quickly and reduce development effort and long-term […]
This talk introduces you to the fundamentals of threading in Qt. We will discuss how threads, QObjects and events interact together; how a thread affinity of a QObject has a play in signals and slots connections; and how you can leverage the modern C++11 threading capabilities in your Qt application. Cross-platform thread support was introduced […]
GammaRay is a high-level runtime introspection tool for Qt applications. In this talk we will look at a number of real-world debugging and profiling problems and how the capabilities provided by GammaRay help you with those.
This talk will introduce you to various effective strategies of drawing raw OpenGL content inside a Qt Quick 2 scene. After a brief introduction to how the Qt Quick 2 renderer works, we will see the APIs in Qt 5.6 that allow us to integrate existing OpenGL code and QML. One of the foundation pillars […]
This talk introduces you to the fundamentals of threading in Qt / qthread. We will discuss how threads, QObjects and events interact together; how a thread affinity of a QObject has a play in signals and slots connections; and how you can leverage the modern C++11 threading capabilities in your Qt application.
This talk will introduce you to various effective strategies of drawing raw OpenGL content inside a Qt Quick 2 scene. After a brief introduction to how the Qt Quick 2 renderer works, we will see the APIs in Qt 5.6 that allow us to integrate existing OpenGL code and QML.
Are you a Qt developer and do you use Linux as your development platform of choice? Then this talk is for you: I will introduce you to perf, the Linux tool suite for performance analysis. The talk will not only cover a broad part of what perf has to offer, it will also dive into […]
This talk introduces perf, the Linux performance analysis tool suite, specifically for Qt developers using Linux. It covers perf's broad capabilities and Qt-specific applications, teaching how to find CPU hotspots in code and profile wait times for lock contention and disk I/O issues, providing practical performance optimization techniques.
Qt Quick and QML provide an easy way to rapidly develop customized, reusable components entirely within QML. As these components grow in complexity, performance and maintainability often suffer, a drawback that is especially noticeable on low-powered embedded and mobile devices. In addition, some specialized components simply cannot be implemented by combining existing Qt Quick items […]
Having 3D scenes in your application is becoming a clear trend and is likely to become even more important in the future with the growth of Virtual Reality and Augmented Reality. So far Qt was allowing you to integrate with Open GL fairly easily, but managing the rendering code itself was still a very challenging […]
Qt Quick and QML enable rapid development of customized, reusable components, but complex components often suffer performance and maintainability issues, especially on embedded/mobile devices. Some specialized components can't be implemented by combining existing Qt Quick items. Qt Quick's C++ OpenGL scene graph API allows creating components aligned with underlying architecture for improved performance.
Using OpenGL code with Qt is a long love story... long enough that there might be skeletons in the closet. Indeed, the OpenGL code of your Qt application could have been written before the modernization of the OpenGL API to exploit better GPUs. In this talk, we will walk through a technique to help refactor […]