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, […]
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.
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 Qt4 and Qt 5
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 comes with a tool to detect race conditions between threads, in multithreaded applications. […]
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 […]
The missing link in BB10/Cascades
Today I’d like to talk a bit about a basic concept of software design: layers. When you design your application (or framework), you should try to define layers of concerns, like storage, business logic and UI. That’s no rocket science and is taught at schools and universities for a couple for years now already. However, […]