Namespaces
Variants
Actions
(Difference between revisions)

Implementing area monitoring in Qt

Jump to: navigation, search
m (Hamishwillee - Bot change of template (Template:CodeSnippet) - now using Template:ArticleMetaData)
Line 2: Line 2:
 
__NOTOC__
 
__NOTOC__
 
__NOEDITSECTION__
 
__NOEDITSECTION__
{{CodeSnippet
+
{{ArticleMetaData
 
|id=
 
|id=
 
|platform=S60 5th Edition, Maemo 5
 
|platform=S60 5th Edition, Maemo 5
Line 10: Line 10:
 
|creationdate=May 24, 2010
 
|creationdate=May 24, 2010
 
|keywords=
 
|keywords=
 +
 +
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 +
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 +
|sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
 +
|devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) -->
 +
|signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
 +
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) -->
 +
|author=[[User:Tapla]]
 
}}
 
}}
  

Revision as of 12:21, 24 June 2011


Article Metadata

Tested with
Devices(s): Nokia 5800 XpressMusic

Compatibility
Platform(s): S60 5th Edition, Maemo 5

Article
Created: tapla (24 May 2010)
Last edited: hamishwillee (24 Jun 2011)

Overview

This code snippet demonstrates how to implement area monitoring in Qt using the Location module of Qt Mobility. It is assumed here that you have set up Qt Mobility in your development environment and on your device. For more information, see Setting up Qt Mobility.

Qt project file

Link the Location module into the project:

CONFIG += mobility
MOBILITY = location

Using the Location module requires the Location capability:

symbian: {
TARGET.CAPABILITY = Location
}

Header

#include <qgeoareamonitor.h>
#include <qgeopositioninfo.h>
 
// QtMobility namespace
QTM_USE_NAMESPACE
 
class MainWindow : public QMainWindow
{
Q_OBJECT
 
public slots:
/**
* Called when the current position is in range of the area.
*/

void areaEntered(const QGeoPositionInfo &update);
/**
* Called when the current position moves out of range of the area.
*/

void areaExited(const QGeoPositionInfo &update);
 
private:
/**
* Initializes the area monitor.
*/

void initAreaMonitor();
}

Source

#include <qgeocoordinate.h>
void MainWindow::initAreaMonitor()
{
// Create the area monitor
QGeoAreaMonitor *monitor = QGeoAreaMonitor::createDefaultMonitor(this);
 
// Connect the area monitoring signals to the corresponding slots
connect(monitor, SIGNAL(areaEntered(QGeoPositionInfo)),
this, SLOT(areaEntered(QGeoPositionInfo)));
connect(monitor, SIGNAL(areaExited(QGeoPositionInfo)),
this, SLOT(areaExited(QGeoPositionInfo)));
qreal latitude = 60.169966;
qreal longitude = 24.952115;
QGeoCoordinate myLocation(latitude, longitude);
monitor->setCenter(myLocation);
monitor->setRadius(100);
}
 
void MainWindow::areaEntered(const QGeoPositionInfo &update) {
printString("The area has been entered.");
}
 
void MainWindow::areaExited(const QGeoPositionInfo &update) {
printString("The area has been exited.");
}

Postconditions

A specific area is defined and monitored.

See also

150 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved