Qt Reference Documentation

Scalability Examples Summary


These guidelines are accompanied by the ScaleFM example application, which has been designed specifically to highlight the issues faced in designing a scalable application. Whilst it's not a complete, functional application, it demonstrates how to tackle the main scalability challenges, and illustrates how to put these guidelines into practice.

In particular, it is recommended that you experiment with the ScaleFM application in a desktop environment. This enables you to dynamically resize the application window, which enables you to get a feel for the way that the dynamic layout calculations are resolving the final layout calculations. Also, you can use the nudge buttons to change the DPI (a desktop only feature), and visualize how the DPI and resolution interact with the layout positioners and the platform style to create the final layouts.

Examples of Scalable Code

There are also a number of example applications that demonstrate each of the following scalability issues. These examples make it easy to see the solution boiled down to a short and straightforward implementation.

Note: Some examples import the experimental "Qt.labs.components.native 1.0" module. It is not an officially-supported QML module and therefore not covered in Qt Quick Components documentation. The import of the "Qt.labs.components.native 1.0" module can be used to ease the starting phase of a new application project if the application is targeted for both Symbian and MeeGo 1.2 Harmattan devices. By using the "import Qt.labs.components.native 1.0" statement it is not necessary to break code into branches with different platform-specific imports. Because the platform-specific APIs are very similar with "Qt.labs.components.native 1.0" module’s API, it is possible to make cross-platform code by using "Qt.labs.components.native 1.0" module import as demonstrated in the examples. However the module is not identical in Symbian and MeeGo 1.2 Harmattan platforms. Final published applications should always import one of the following official platform-specific modules:

 import com.nokia.symbian 1.1    // Symbian components
 import com.nokia.meego 1.1      // MeeGo 1.2 Harmattan components