在QML中提交表单

时间:2012-08-06 19:04:51

标签: qml

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

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

感谢您的任何建议, 米甲

3 个答案:

答案 0 :(得分: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()启动第一个,当您收到回复时,您可以启动第二个。

答案 1 :(得分:1)

应该可以用状态来解决。您可以尝试在WorkerScript中执行Javascript处理。处理完成后,它将发回一个QML WorkerScript元素的回复,该元素将表单的状态设置为再次启用。因此,在onClicked中,您可以通过设置状态来禁用动画,而在WorkerScript元素的onMessage函数中,您可以通过将状态设置为“enabled”来启用动画。

答案 2 :(得分:0)

也许你在谈论异步使用XMLHttpRequest。发送请求时“停用”表单,并在onreadystatechange调用readyState === XMLHttpRequest.DONE时“启用”表单。