0

アプリケーションを作成していますが、qml の状態が変化しません....ここLoginViewに QML ファイルMessageViewがあり、QML ファイルでもあります。QML ファイルをアプリケーションのページとして変更したいです...何か間違ったことをしていますが、何を理解することができません....私を助けてください

import QtQuick 1.0

Item {
id: main

LoginView {
    id: login
    anchors.fill: parent
    visible: true
    onLoginClicked: main.state="messageView"
}

MessageView {
    id: message
    anchors.fill: parent
    visible: false
}

states: [State {
        name:"messsageView"
        PropertyChanges { target: login; visible: false }
        PropertyChanges { target: message; visible: true }
    },State {
        name:""
        PropertyChanges { target: message; visible: false }
        PropertyChanges { target: login; visible: true }
    }]
}
4

2 に答える 2

2

あなたはタイプミスをしました。このコードを見てください:

LoginView {
id: login
anchors.fill: parent
visible: true
onLoginClicked: main.state="messageView" //state name is "messageView"
}

そして、二次的に見てください:

states: [State {
    name:"messsageView" // TRIPLE "s"
    PropertyChanges { target: login; opacity: 0 }
于 2013-02-01T13:22:34.983 に答える
0

なんらかの「イベント」が発生したときに変更が発生するべきではありません。このようなもの:

import QtQuick 1.0

Rectangle
{

    id: main
    color: "blue"
    width : 200
    height: 200

Rectangle
{
    id: login
    color: "red"
    anchors.fill: parent
    opacity: 1
}

Rectangle {
    id: message
    color: "green"
    anchors.fill: parent
    opacity: 0
}

// --------------------------- THIS! ---------------------

MouseArea
{
 anchors.fill: parent
 onClicked: parent.state = "messsageView"
}

// -------------------------------------------------------

states: [State {
        name:"messsageView"
        PropertyChanges { target: login; opacity: 0 }
        PropertyChanges { target: message; opacity: 1 }
    },State {
        name:""
        PropertyChanges { target: message; opacity: 0 }
        PropertyChanges { target: login; opacity: 1 }
    }]

}
于 2013-01-28T00:32:16.237 に答える