GPU drawing using ShaderEffects in QtQuick
A ShaderEffect is a QML item that takes a GLSL shader program allowing applications to render using the GPU directly. Using only property values as input as with the Canvas in our previous article, we...
View ArticleNew in Qt 5.5: Q_ENUM and the C++ tricks behind it
Qt 5.5 was just released and with it comes a new Q_ENUM macro, a better alternative to the now deprecated Q_ENUMS (with S).In this blog post, I will discuss this new Qt 5.5 feature; What it does, and...
View ArticleQDockWidget improvements in Qt 5.6
We made some improvements to QDockWidget for Qt 5.6. You can now re-order your QDockWidget's tabs with the mouse. There is also a new mode you can set on your QMainWindow so that you can drag and drop...
View ArticleHow Qt Signals and Slots Work - Part 3 - Queued and Inter Thread Connections
This blog is part of a series of blogs explaining the internals of signals and slots.Part 1 - How Qt Signals and Slots WorkPart 2 - Qt 5 new syntax Interlude - QMetatype knows your typesIn this...
View ArticleMoc myths debunked
I have often read, on various places, criticisms about Qt because of its use of moc. As the maintainer of moc I thought it would be good to write an article debunking some of the myths.Introductionmoc...
View ArticleVerdigris: Qt without moc
Verdigris is a header-only library that can be used with Qt. It uses macros to create a QMetaObject that is binary compatible with Qt's own QMetaObject without requiring moc. In other words, you can...
View ArticleQIcon::fromTheme uses GTK+'s icon cache in Qt 5.7
When you pass a name to QIcon::fromTheme, Qt needs to look up in the different folders in order to know which theme contains the given icon and at which size. This might mean a lot disk access needs...
View ArticleQReadWriteLock gets faster in Qt 5.7
In Qt 5.0 already, QMutex got revamped to be fast. In the non contended case, locking and unlocking is basically only a simple atomic instruction and it does not allocate memory making it really...
View ArticleWoboq Code Browser: under the hood
A few years ago, I was introducing the code browser and code.woboq.orgSince the then, we implemented a few new features and made thesource code available, which you can browse from the code browser...
View ArticleQML vs. C++ for application startup time
After 5.8 reduced startup times with its QML compilation caching, object creation remains one of the largest startup time consumer for Qt Quick applications. One can use Loaders to avoid loading parts...
View ArticleTwo C++ tricks used in Verdigris implementation
I have just tagged the version 1.0 Verdigris. I am taking this opportunity to write an article about two C++ tricks used in its implementation. Verdigris is a header-only C++ library which lets one use...
View ArticleIntegrating QML and Rust: Creating a QMetaObject at Compile Time
In this blog post, I would like to present a research project I have been working on: Trying to use QML from Rust, and in general, using a C++ library from Rust.The project is a Rust crate which allows...
View Article