我正在开发一个级联的bb10应用程序。 这是头文件的片段
//applicationui.hpp
Q_PROPERTY(int metric READ getMetric WRITE setMetric NOTIFY metricChanged)
public:
int getMetric();
void setMetric(int newMetric);
signals:
void metricChanged(int);
private:
int m_metric;
//applicationui.cpp
ApplicationUI::ApplicationUI(bb::cascades::Application *app) :
QObject(app)
{
qml->setContextProperty("_app", this);
// Set created root object as the application scene
app->setScene(root);
m_metric = 1;
}
int ApplicationUI::getMetric(){
return m_metric;
}
void ApplicationUI::setMetric(int newMetric){
m_metric = newMetric;
emit metricChanged(m_metric);
}
在我的main.qml中,我有一个RadioGroup,我想根据度量值设置selectedIndex
RadioGroup {
id: distanceMetric
Option { id: option1; text: "Miles"}
Option { id: option2; text: "Kilometers"}
onCreationCompleted: {
distanceMetric.selectedIndex = _app.metric
}
}
但这似乎没有按预期工作。 任何建议,将不胜感激。感谢名单
答案 0 :(得分:1)
你的类是否继承了QObject(我想它必须因为它似乎是一个小部件)?
您是否包含Q_OBJECT宏?
如果以上都不能解决您的问题,那么doc可能会有所帮助吗?我不是说RTFM,有时如果你使用的是网站版的文档,我觉得找东西有点困难。
答案 1 :(得分:1)
我怀疑在将指标值设置为1之前正在创建您的QML场景。尝试更改此内容:
m_metric = 1;
到此:
setMetric(1);
以便可以通知QML绑定更改。