1

私はこれをしたい: いくつかのフォームを表示し、Rectangle::onClicked イベントを処理します (フォームを無効にし、不透明度を 0.2 に設定し、javascript を処理してフォームを送信し、不透明度を 1.0 に戻し、フォームを有効にします)。しかし、私はそれを行う方法がわかりません。

onClicked() は「バッチ」モードで処理されているようで、UI プロパティの変更は関数が終了するまで表示されません。ステート、トランジション、アニメーションで遊んでみましたが、まだうまくいきません。

提案をありがとう、Michal

4

3 に答える 3

2

1 つはフォームを非表示にし、もう 1 つはフォームを表示する 2 つのカスタム アニメーションを開始するだけです。このようなもの:

SequentialAnimation {
  id: submitAndHideForm

  ParallelAnimation {
    // Animations to hide the form elements
  }
  ScriptAction {
    script: submitForm()
  }
}

ParallelAnimation {
  id: showForm

  // Animations to show the form elements
}

次にsubmitAndHideForm.start()、フォームを送信したいときに最初のものを開始し、応答を受け取ったときに2番目のものを開始できます。

于 2012-08-07T15:58:10.053 に答える
1

状態で解決できるはずです。WorkerScriptで Javascript 処理を試みることができます。処理が完了すると、フォームの状態を再び有効に設定する QML WorkerScript 要素に応答が返されます。したがって、onClicked では状態を設定してアニメーションを無効にし、WorkerScript 要素の onMessage 関数では状態を「有効」に設定してアニメーションを有効にします。

于 2012-08-07T07:04:29.887 に答える
0

XMLHttpRequestおそらく、非同期での使用について話しているでしょう。リクエストの送信時にフォームを「無効」にし、 でonreadystatechange呼び出されたときにフォームを「有効」にしreadyState === XMLHttpRequest.DONEます。

于 2012-08-07T05:40:11.437 に答える