Qt Quick 中强制刷新界面

jpy*_*ams 5 qt qml qt5 qtquick2

我正在构建一个 Qt Quick QML 应用程序,只需一个按钮即可启动一个需要一段时间才能运行的进程。我想让用户知道该程序实际上正在做某事,但如果我做这样的事情:

Button {
    text: "Click me"
    onClicked: {
        text = "Loading..."
        backend.longRunningFunction()
        text = "Click me"
     }
}
Run Code Online (Sandbox Code Playgroud)

当我单击该按钮时,GUI 在backend.longRunningFunction()运行时冻结,然后恢复正常。但文本永远不会改变;它总是写着“点击我”。

有没有办法可以强制 UI 在函数中更新onClicked,例如qApp.processEvents()

小智 -2

尝试这样的事情:

Button {
id: button1
text: "Click me"
onClicked: {
    button1.text = "Loading..."
    backend.longRunningFunction()
    button1.text = "Click me"
 }}
Run Code Online (Sandbox Code Playgroud)