Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News In Case You Missed It: Qt 5.0

In Case You Missed It: Qt 5.0

This item in japanese


Qt is a framework used by mainly by C++ developers for build user interfaces. While available for many platforms, it is most widely known for its role in Nokia's Symbian OS for phones. Originally created by Trolltech in 1994, Nokia purchased the technology in 2006. When they decided to drop the Symbian line, Nokia sold Qt to its current owner, Digia. Currently there are Qt bindings available for 18 languages including C#, Java, Python, PHP, and Ruby.

A major change in the Qt 5 is the introduction of Qt Quick 2. The Qt Quick module is the base library upon which QML based applications are created. Before we get into Qt Quick, we should discuss QML itself.

QML is a declarative language that resembles CSS. It serves the same role as XAML or AXML, but with some added benefits. For example, JavaScript expressions can be used directly for property binding.

Like XAML, it has the concept of a state manager that can override visual properties. Each state has a name and a PropertyChanges section that serves as a style to be applied. The state of the control itself is exposed as a property.Animations are also supported. Animations can be chained together and support the usual features such as easing when adjusting values.

Qt Quick 2 offers several new features including,

  • Canvas for drawing. Canvas provides an API that is similar to the HTML5 Canvas API, along with some additional features.
  • Shader Effects which enable GLSL shader programs to be integrated directly into QML code and applied to items and images.
  • Particle Effects for creating a variety of 2D particle systems.
  • Sprites can be used in animating 2D graphical objects and as a source for particle systems.
  • Offline storage is a HTML5 Web Database API conformant JavaScript API for storing data in Qt Quick applications.
  • Window provides a top-level window and the Screen type for accessing a screen's resolution and other details. This is useful for desktop applications developed using Qt Quick.
  • New rendering architecture based on OpenGL for optimal performance.

Webpages can be embedded inside Qt applications using Qt WebKit. As the name implies, this is based on the popular Webkit project and supports HTML 5 features such as “CSS filters and animations and Video, Canvas and WebGL, Canvas support and HTML video”.

Rate this Article