1

我对 C++ 和 QML 还很陌生,所以有点想自学!我正在尝试更改 QML Header 对象的“标题”属性。我目前正在从 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
    }

谢谢!

4

1 回答 1

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: ""
}

经测试,有效

于 2013-08-31T15:59:09.477 回答