Knowing what tools are at your disposal when looking to make a program faster or keep it operating smoothly is critical to your success as a programmer. We recently solved a performance problem using Linux Kernel Tracepoints so we thought we’d share the process with you so that you can see for yourself if this […]
Author Archives: Thomas McGuire
How to Profile QtQuick applications on Freescale i.MX 6 with vAnalyzer
Quick overview of profiling tools QtQuick is often used to create UIs for embedded devices. One SoC that is quite popular at the moment is the i.MX 6 board from Freescale, with its Vivante GC2000 or GC880 3D GPU. Performance on such a device matters, users expect a fluid interaction. With the QML Profiler, Qt […]
Analyzing Performance of QtQuick Applications
Using the QML engine and QtQuick scenegraph to introspect and analyze performance. Abstract: A fluid and performant user interface in QtQuick applications is an important factor, especially considering that users increasingly demand an “iPhone-like” experience, while at same time, applications often run on a resource-constrained embedded system. What can be done when a QtQuick application […]
Running QtQuick Applications on the Web
QML is the language that makes writing Qt application UIs easier than ever before. QmlWeb now brings this ease to the web. Traditionally desktop applications were written in languages like C or C++. Web technologies like HTML and PHP were mainly used to write static websites. With the rise of modern web applications and technologies […]
Creating a PDF from a QtQuick 2 scene in SlideViewer
The Challenge Previously on this blog, we featured a series of articles about our QML-based presentation tool, SlideViewer. To quickly recap: SlideViewer is a presentation program that allows writing slides entirely in QML. There are situations in which the slide deck needs to be available in PDF format in addition to the QML source: For […]
Analysing QtQuick apps with GammaRay or “Why is my button gone?”
This is a typical situation when you program a GUI for an application. You have just created a new control, you start your application and… no control. But now: Is it obscured? Is it misplaced? Is it completely transparent or set to ‘invisible’? Is my custom OpenGL-stuff broken or is the item actually not created for […]
QML Engine Internals, Part 4: Custom Parsers
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 […]
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. […]
QML Engine Internals, Part 2: Bindings
This blog post is part of an ongoing series about the internals of the QML engine. In the last blog post, we covered how the QML engine loads QML files. To recap, QML files are parsed and then C++ objects are created for all elements in the QML file. For example, we saw that when […]
QML Engine Internals, Part 1: QML File Loading
In this series of blog posts, we’ll look under the hood of the QML engine and uncover some of its inner workings. The articles are based on the Qt5 version of QtQuick, QtQuick 2.0. Most people know that each element in a QML file is backed by a C++ class. When a QML file is […]