Отображение индикатора занятости или загружаемого изображения при загрузке большого файла QML

#qt #qml

#qt #qml

Вопрос:

Я работаю над приложением на основе QML. где я динамически загружаю содержимое. Однако при запуске приложения это занимает довольно много времени (5-10 секунд), поэтому мне нужно показывать любой экран загрузки или индикатор во время загрузки всего содержимого. Кто-нибудь может подсказать мне, как это сделать? Например, после входа в мое приложение потребовалось некоторое время для загрузки следующей страницы, поэтому в течение этого периода времени я хочу показать экран загрузки.

 App {
id: app
height: 400
width: 200
    Rectangle {
        id: rectangle       
        Button {
            id: button
            text: qsTr("GO TO NEXT PAGE")
            onClicked:stackView.push("page2.qml")                
        }        
        Image {
            id: image
            fillMode: Image.PreserveAspectFit
            source: "default-app.png"
        }
    }
  

}
Предположим, что это мой код, тогда где я могу использовать loader? Я никогда не использовал его раньше

Комментарии:

1. простите, но где упомянутое StackView ?

Ответ №1:

Вы можете использовать компонент status из Loader (я предполагаю, что вы используете это, поскольку вы загружаете «динамически»). Затем используйте это в BusyIndicator .

 Loader {
    id: loader
    asynchronous: true
    ...

    BusyIndicator {
         anchors.centerIn: parent
         running: loader.status == Loader.Loading 
    }
}
  

Черт возьми, документы Qt для BusyIndicator должны были заставить вас работать!

Комментарии:

1. Он также должен установить asynchronous: true

2. Я не использовал загрузчик. для перенаправления на следующую страницу я использую StackView

3. @user13846567 это показывает, что вы должны включить код в свой вопрос! И затем вы должны начать использовать Loader в своем StackView