我正在构建Qt Quick QML应用程序,并且一个按钮启动了一个过程,该过程需要一段时间才能运行。我想让用户知道该程序实际上正在做某事,但是如果我做这样的话:
Button {
text: "Click me"
onClicked: {
text = "Loading..."
backend.longRunningFunction()
text = "Click me"
}
}
当我单击按钮时,GUI在backend.longRunningFunction()
运行时冻结,然后恢复正常。但是文字永远不会改变。它始终显示为“单击我”。
[有没有一种方法可以强制UI在onClicked
函数中进行更新,例如qApp.processEvents()
?
尝试这样的事情:
Button {
id: button1
text: "Click me"
onClicked: {
button1.text = "Loading..."
backend.longRunningFunction()
button1.text = "Click me"
}}