0
私は次のような状況に直面してきました:QML
私はMouseAreaとの項目があります。これはスクリーン上の私のボタンです - キーボード。
- キーボードのボタンを長押しします。
- 私はこのボタンを押したままにしていません。
- onPressed {}シグナルハンドラで別の画面を開いています。
- キーボードからの私のbutonはもうリリースシグナルを受信しません。
- 前のキーボードに戻ったとき - 私のボタンはまだ押されました。
"pressed" = falseに設定しようとしましたが、これは読み取り専用プロパティです。
私はreleased()シグナルを出そうとしましたが、 "pressed"フラグはクリアされません。 しかし、私は間違った方法でそれをやったと思います。パラメータは、クリックのリリースのx、y位置、クリックの有無などのクリックに関する情報を提供します。 、それは助けにはならない。
を私は「押された」フラグをunsedしようとしなければならない他に何かわからない。
M Yマウス面積は単純です:
私のボタンでMouseArea {
id: mouseArea
property bool haveToRelease: false
onHaveToReleaseChanged: {
if(haveToRelease)
{
console.log("BaseButton.qml: call canceled()")
released()
haveToRelease = false
}
}
anchors.fill: parent
hoverEnabled: true
onReleased: {
console.log("BaseButton.qml: onReleased")
}
onPressedChanged: {
console.log("BaseButton.qml: onPressedChanged, pressed = ", pressed)
}
}
私は次のハンドラがあります
onVisibleChanged: {
if(config.isToyota && !visible && pressed) {
console.log("Key.qml :: config.isToyota && !visible && pressed")
releaseButton = true
}
}
を誰かがこの問題を解決するために私を助けている場合、私は喜んで異なります! ありがとう!期待通りに動作します私のためとして
私はあなたのコードに従うことができません。あなたはそれを[mvce](http://stackoverflow.com/help/mcve)にしてください。したがって、 'onPressed'とそれ以外の必要なものを含め、それを実行し、あなたの問題を見てください。 @folibisが示すように、それは動作します。したがって、エラーはどこかで発生する必要があります。 – derM