This blog post is part of an ongoing series about the internals of the QML engine. In today’s post, we’ll examine the concept of custom parsers in QML. Recap In the first blog post of the series, we covered how the QML engine loads QML files. One important concept was that every element in the […]
KDAB Blogs Get the RSS Feed
Stay up-to-date and get inspiration from KDAB’s expert insights into Qt, C++ and OpenGL development.
Our engineers and designers share cutting-edge technology news and ideas with regard to Qt, QML, Qt on Android, OpenGL, Qt 3D, Vulkan, Scalable UIs and more embedded, mobile and desktop-related topics.
Using QAbstractItemModel with Cascades on BB10
With QML as abstraction layer, we nowadays have a great way to separate the business logic (C++) of our application from the graphical user interface (QtQuick/QtWidgets/Cascades) on top of it. The interface between the two layers is well defined by the meta-object API, which essentially boils down to signals and slots for notifications and invocations, […]
OpenGL in Qt 5.1 – Part 5
This article concludes our series on what is new in Qt 5.1 with respect to OpenGL. Earlier articles in this series are available at: Part 1 Part 2 Part 3 Part 4 More shader stages In Qt 5.0 the QOpenGLShader and QOpenGLShaderProgram classes only had support for Vertex and Fragment shaders. Qt 5.1 will include […]
How to use helgrind to debug multithreaded Qt applications Finding thread race conditions in Qt applications
(NOTE: this blog post has been edited many times since its original publication) You’ve heard of valgrind before, its default tool (memcheck) is such a life saver, being able to detect memory-related bugs in your code (leaks, double deletions, use of deleted memory, use of uninitialized memory, etc.). Well, it turns out that valgrind also […]
OpenGL in Qt 5.1 – Part 4
This article continues our series on what is new in Qt 5.1 with respect to OpenGL. Earlier articles in this series are available at: Part 1 Part 2 Part 3 OpenGL Debug Output The traditional way to debug OpenGL is to call glGetError() after every GL function call. This is tedious, clutters up our code, […]
OpenGL in Qt 5.1 – Part 3
This article continues our series on what is new in Qt 5.1 with respect to OpenGL. If you haven’t already seen them, you may be interested in reading Part 1 and Part 2. Timer Queries OpenGL on the desktop exposes a very useful tool in the shape of timer query objects. These can be used […]
OpenGL in Qt 5.1 – Part 2
Qt has QOpenGLBuffer to manage OpenGL buffer objects like per-vertex attribute data and element index buffers. OpenGL also has a container type call Vertex Array Objects managing vertex buffer objects.
OpenGL in Qt 5.1 – Part 1
Firtst in a blog series that shows how to use OpenGL with Qt 5. We shall take a quick look at Qt’s historical support for OpenGL and then describe the first batch of new features in Qt 5.1 that enhance Qt’s OpenGL
QML Engine Internals, Part 3: Binding Types
This blog post is part of an ongoing series about the internals of the QML engine. In the last blog post, we covered how bindings in the QML engine work. In this post, we’ll examine the different kind of bindings. Some of this content is already covered by my DevDays talk QtQuick Under the Hood. […]
One DataModel to filter them all
Today I want to talk about the usage of data models in Cascades. As you might know already, Cascades provides the abstract interface bb::cascades::DataModel, which is used by bb::cascades::ListView to retrieve and display arbitrary data. Cascades also provides a couple of convenience classes that implement this DataModel interface, namely ArrayDataModel GroupDataModel QListDataModel XmlDataModel While the […]