1

これはバグである可能性がありますが、以下をお読みください。

次のコードでは、フリップ可能オブジェクトがフリップする (ただし反転する) ときに、フリップ可能オブジェクトの前面にあるマウス領域がアクティブなままであり、背面から一部のマウス領域を引き継いでいます。

import QtQuick 2.0

Rectangle {
    height: 500
    width: 500

    Flipable {
        id: flipable

        anchors.fill:parent

        property bool flipped: false

        front: Rectangle{
            color: "black"
            anchors.fill: parent

            Rectangle {
                color:"darkgrey"
                height: parent.height / 2
                width: parent.width / 2

                MouseArea {
                    anchors.fill: parent
                    onClicked: flipable.flip()
                }
            }
        }
        back: Rectangle {
            id: yellow
            color: "yellow"
            anchors.fill: parent

            MouseArea {
                anchors.fill: parent
                onClicked: yellow.color = "green"
            }
        }

        transform: Rotation {
            id: rotation
            origin.x: flipable.width/2
            origin.y: flipable.height/2
            axis.x: 0; axis.y: 1; axis.z: 0     // set axis.y to 1 to rotate around y-axis
            angle: 0    // the default angle
        }

        states: State {
            name: "back"
            PropertyChanges { target: rotation; angle: 180 }
            when: flipable.flipped
        }

        transitions: Transition {
            NumberAnimation { target: rotation; property: "angle"; duration: 400 }
        }

        function flip () {
            flipped = !flipped
        }
    }
}

灰色の領域を押すとページがめくれ、もう一度押すと (現在は右側の後ろにあります)、再びめくります。正しい動作は、右上隅をクリックしても黄色の四角が緑色になることです。

ありがとう!

4

2 に答える 2

2

フロント要素とバック要素を有効にすると、この問題が解決されました。

front: Rectangle {
    enabled: !parent.flipped
    ...
}

back: Rectangle {
    enabled: parent.flipped
    ...
}
于 2014-07-13T10:46:31.400 に答える
1

正しい動作は、右上隅をクリックしても黄色の四角が緑色になることです。

私はこの行にコメントしました:

preventStealing: true // doesnt work with my QtQuick 1.0

そしてそれは正しい方法で動作しています。

そもそもなんで入れたの?

于 2013-01-08T19:00:48.760 に答える