0

私が間違っていることは何ですか?UI のボタンを押したときに、ラベルのテキストを変更したい。

.qml:

Page {
    property alias lala: labelek.text 
    Container {
        layout: StackLayout {}
        Label {
            id:labelek
            text: "Hello World"
        }
        Button {
            id: btnChange
            objectName: "btnChange"
            text:"Change hello!"
            onClicked: {}
        }
    }
}

.cpp:

QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);

    // create root object for the UI
    AbstractPane *root = qml->createRootObject<AbstractPane>();
    // set created root object as a scene
    app->setScene(root);

    root->setProperty("lala","Siema ziomek!");

    Button *newButton = root->findChild<Button*>("btnChange");
    if (newButton){
       //ChangeText(root);
       //root->setProperty("lala","Siema ziomek2!");
       bool conn = connect(newButton, SIGNAL(clicked()), this, SLOT(ChangeText(root)));
       if(conn)
           root->setProperty("lala","Connected!");
       else
           root->setProperty("lala","NOT Connected!");
    }

void ProgramowanieKSMobilne::ChangeText(AbstractPane *root){
    root->setProperty("lala","Czesc czolem!");
}

私を助けてください。

4

1 に答える 1

0

あなたはこのようにすることができます-

Page {
property alias lala: labelek.text 
Container {
    layout: StackLayout {}
    Label {
        id:labelek
        text: "Hello World"
    }
    Button {
        id: btnChange
        objectName: "btnChange"
        text:"Change hello!"
        onClicked: {
           labelek.text = "Button Clicked"
        }
    }
}

}

于 2013-04-30T09:32:23.037 に答える