×
Namespaces

Variants
Actions
Revision as of 14:47, 13 June 2011 by achipa (Talk | contribs)

Latest Qt and Qt mobility evaluation on Maemo

From Nokia Developer Wiki
Jump to: navigation, search

This article explains how to get and install the latest evaluation versions of Qt and Qt Mobility for Maemo 5 from the Extras-devel repository.

Note that these libraries cannot be used for publishing software to Ovi nor do they come with any warranty, but are good for evaluating real-life performance and behavior. The components that are part of this initiative are labeled with experimental in their package names. They are installed in parallel to the Maemo5 libraries, so they pose minimal danger to your existing install and do not affect stable software written for Maemo.

NOTE: All the packages referenced are found in extras-devel

Contents

Qt Mobility 1.1.3

libqtm-11-dev package

Both QtSDK and Scratchbox environments are supported and the 1.1 mobility packages are available from Extras. Use the one you're more familiar with.

QtSDK install

Download the mobility packages from maemo.org (bearer (legacy), contacts, declarative, Headers (-dev), feedback, gallery, location, messaging, multimedia, organizer, publishsubscribe, sensors, serviceframework, systeminfo, versit)

Open a shell prompt and go to the directory with the downloaded files and install them into your rootstrap with:

Linux

/path/to/your/QtSDK/Maemo/4.6.2/bin/mad-admin xdpkg -i filename.deb

(or, if you are installing them all at once)

for i in `ls libqtm*deb` ; do ~/QtSDK/Maemo/4.6.2/bin/mad-admin xdpkg -i $i ; done

Windows

\path\to\your\QtSDK\Maemo\4.6.2\wbin\mad-admin.exe xdpkg -i filename.deb

(or, if you are installing them all at once)

for /f %%a IN ('dir /b *.deb') do call C:\QtSDK\Maemo\4.6.2\wbin\mad-admin xdpkg -i %%a

(yes, sadly, xpkg can install only one package at a time, so you will need to repeat this for each of them)

Scratchbox install

Make sure extras-devel is enabled in you repositories, and do

apt-get update
apt-get install libqtm-11-dev

Install on actual device

apt-get install libqtm-11

Usage

For Qt to know which mobility version to use, you will need to specify the following

maemo5 {
  CONFIG += mobility11
} else {
  CONFIG += mobility
}

in your projects .pro file (instead of CONFIG += mobility). For help and discussion about this version, see the maemo.org community developer thread. Note that you don't have to have to add the config option if you are just using the QML bindings.

Mobility sensor orientation

Note that compared to other Nokia devices, the N900 has a landscape default, i.e. the X and Y accelerometer axis' are swapped. If you would like your code to work with the same axis on all Nokia devices, insert

qputenv("N900_PORTRAIT_SENSORS", "1");

in your main function (for details on this, see http://bugreports.qt.nokia.com/browse/QTMOBILITY-1044 )

Status:

(Ville) Confirmed to work: Multimedia ("player" demo can stream rtsp video, full screen works)

(Ville) Confirmed to work: QmlMapViewer example with qtm-12 ("import QtMobility.location 1.1", Map, MapCircle, MapMouseArea). Does *not* work with qtm-11.


Qt Mobility 1.2.0

libqtm-12-dev package

QtMobility 1.2.0 is currently available from extras-devel and will be promoted to Extras after testing

It is used in an analogous way to libqtm-11 (bearer (legacy), contacts, connectivity, declarative, Headers (-dev), feedback, gallery, location, messaging, multimedia, organizer, publishsubscribe, sensors, serviceframework, systeminfo, versit):

apt-get install libqtm-12-dev

in scratchbox and

apt-get install libqtm-12

on the device, and in you .pro file you need:

maemo5 {
  CONFIG += mobility12
} else {
  CONFIG += mobility
}

NOTE: The 1.2 release is in a TECH PREVIEW status. APIs can change and/or break without notice.


Using the libraries from QML

If you want to use the QML components of Qt Mobility, you have to add their paths to the QML search path. For the qmlviewer application, you can use the
-I /opt/qtm11/imports
command line parameter. In C++, you can do something like this:
viewer.engine()->addImportPath(QString("/opt/qtm11/imports"));
viewer.engine()->addPluginPath(QString("/opt/qtm11/plugins"));

For Qt Mobility 1.2, just replace "qtm11" with "qtm12" in the above text. If you are using PySide, you can achieve the same using:

viewer.engine().addImportPath('/opt/qtm11/imports')
viewer.engine().addPluginPath('/opt/qtm11/plugins')

Again, replace "qtm11" with "qtm12" if you are using Qt Mobility 1.2.

155 page views in the last 30 days.
×