我对C ++和QML很陌生,所以有点像自己一样教我自己!我试图更改QML标头对象的“标题”属性。我目前正在GitHub上的pushCollector级联示例中开发我的应用程序。
我在其他地方读过我可以分配属性别名并按照这种方式执行;
NavigationPane {
id: navPane
property alias connectionText:connectionStatus.title
Page {
Container {
Header {
id: connectionStatus
title: "Connection Status:"
verticalAlignment: VerticalAlignment.Bottom
bottomMargin: 0.0
topMargin: 0.0
visible: true
subtitle: ""
}
我的问题是,如何在我调用函数时创建一个可以动态更改标题的void函数。我需要类似的东西;
void App:changeConnectionText(const QString new Text)
{
//change object title in QML
}
谢谢!
答案 0 :(得分:2)
在.cpp
中添加#include <bb/cascades/Header>
您可以这样访问:
void ApplicationUI::changeConnectionText(QString Text) {
Header* myheader = Application::instance()->scene()->findChild<Header*>("connectionStatus");
myheader->setTitle(Text);
}
你这样称呼(在cpp中):
changeConnectionText("Yay, connected!");
和QML
Header {
id: connectionStatus
objectName: "connectionStatus" //add this!!!
title: "Connection Status:"
verticalAlignment: VerticalAlignment.Bottom
bottomMargin: 0.0
topMargin: 0.0
visible: true
subtitle: ""
}
经测试,它有效