我想这样做:显示一些表单,处理 Rectangle::onClicked 事件(禁用表单,将不透明度设置为 0.2,处理一些 javascript 以提交表单,然后将不透明度设置回 1.0,启用表单)。但我不知道该怎么做。
似乎 onClicked() 是在“批处理”模式下处理的,在函数退出之前,更改任何 ui 属性都是不可见的。我玩过状态、过渡和动画,但仍然没有成功。
感谢您的任何建议,米哈尔
我想这样做:显示一些表单,处理 Rectangle::onClicked 事件(禁用表单,将不透明度设置为 0.2,处理一些 javascript 以提交表单,然后将不透明度设置回 1.0,启用表单)。但我不知道该怎么做。
似乎 onClicked() 是在“批处理”模式下处理的,在函数退出之前,更改任何 ui 属性都是不可见的。我玩过状态、过渡和动画,但仍然没有成功。
感谢您的任何建议,米哈尔
您可以简单地启动两个自定义动画,一个隐藏表单,一个显示它。像这样的东西:
SequentialAnimation {
id: submitAndHideForm
ParallelAnimation {
// Animations to hide the form elements
}
ScriptAction {
script: submitForm()
}
}
ParallelAnimation {
id: showForm
// Animations to show the form elements
}
然后,您可以在submitAndHideForm.start()
要提交表单时开始第一个,当您收到回复时,您可以开始第二个。
应该可以用状态来解决。您可以尝试在WorkerScript中进行 Javascript 处理。处理完成后,它将向 QML WorkerScript 元素发送回复,该元素将表单的状态再次设置为启用。因此,在 onClicked 中,您通过设置状态来执行禁用动画,在 WorkerScript 元素的 onMessage 函数中,您通过将状态设置为“启用”来执行启用动画。
也许您在谈论XMLHttpRequest
异步使用。在发送请求时“禁用”表单,并在使用onreadystatechange
调用时“启用”它readyState === XMLHttpRequest.DONE
。