我是C ++和BB10开发(Cascades)的新手,并且一直很难学习Blackberry对Qt QML的半实现。
我有一个我正在处理的应用程序,我想获取手机的纬度,经度和其他地址相关信息(城市,州,国家等)。我尝试了一些不同的东西,比如注册要从QML调用的现有C ++类,但是BB10版本的库中没有某些东西。
我发现Cascades中提供的QtMobilitySubset.location 1.2库提供了PositionSource和Address对象,但我无法从中获取任何数据。
我已将它们包含在QML文档的“attachmentObjects”部分中:
attachedObjects: [
PositionSource {
id: positionSource
updateInterval: 5000
active: true
},
Place {
id: place
},
Address {
id: address
}
]
然后尝试通过调用address.state
从地址获取信息,但获取空值。同样适用于positionSource.position.coordinate.longitude
- 没有价值。
我已经尝试过查看Blackberry提供的其他示例,但无法确定我做错了什么。
是否有人知道使用纯QML获取位置信息的示例?
答案 0 :(得分:0)
在您的qml文件import QtMobilitySubset.location 1.1
中,在您的专业文件中添加LIBS += -lQtLocationSubset -lbbcascadesmaps -lGLESv1_CM
并在条形码描述文件中确保您已在应用程序标签中勾选了位置和互联网,同时确保您的位置服务已启用在设备上。以下代码在按钮单击时打印纬度和经度。
Container {
id:mainContainer
property string longitude
property string latitude
property variant cord
Button:{
text: "Show"
onClicked:
{
console.log("actual latitude:"+latitude+" actual longitude:"+longitude);
}
}
attachedObjects:[
PositionSource{
id: locationPos
updateInterval: 1000
onPositionChanged: {
cord = locationPos.position.coordinate;
longitude = cord.longitude;
latitude = cord.latitude;
}
}
]
onCreationCompleted: {
locationPos.start();
}
}