我工作的一個QML應用程序(黑莓10)訪問QML對象,並有一個QML文件是這樣的:不能在C++代碼
import bb.cascades 1.0
Page {
content: Container {
id: containerID
Button {
id: button1
text: "text"
onClicked: {
}
}
Label {
id: label1
text: "text"
}
}
}
現在我想訪問label1
在我的C++代碼,所以我有以下代碼:
#include "app.hpp"
#include <bb/cascades/Application>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/AbstractPane>
using namespace bb::cascades;
App::App()
{
QmlDocument *qml = QmlDocument::create("main.qml");
//-- setContextProperty expose C++ object in QML as an variable
//-- uncomment next line to introduce 'this' object to QML name space as an 'app' variable
//qml->setContextProperty("app", this);
AbstractPane *root = qml->createRootNode<AbstractPane>();
QObject *labelTest = root->findChild<QObject*>("label1");
if (labelTest)
labelTest->setProperty("text", "yes!!");
Application::setScene(root);
}
現在我運行該應用程序,但標籤的文本不會更改。
有什麼不對?
+1救了我很多 –