1

我想这样做:显示一些表单,处理 Rectangle::onClicked 事件(禁用表单,将不透明度设置为 0.2,处理一些 javascript 以提交表单,然后将不透明度设置回 1.0,启用表单)。但我不知道该怎么做。

似乎 onClicked() 是在“批处理”模式下处理的,在函数退出之前,更改任何 ui 属性都是不可见的。我玩过状态、过渡和动画,但仍然没有成功。

感谢您的任何建议,米哈尔

4

3 回答 3

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()要提交表单时开始第一个,当您收到回复时,您可以开始第二个。

于 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 回答