C

Qt Quick Ultralite image_loading Example

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
import QtQuick 2.15
import QtQuick.Controls 2.15

Rectangle {
    id: root
    color: "gray"
    property string imageName: "image222"

    Column {
        anchors.centerIn: parent
        spacing: 20

        Text {
            anchors.horizontalCenter: parent.horizontalCenter
            text: "The following image is created at runtime:"
        }

        Image {
            anchors.horizontalCenter: parent.horizontalCenter

            // Trigger a new image to be loaded when root.imageName changes
            source: "image://myimageprovider/" + root.imageName
            width: 120
            height: 120
        }

        Button {
            anchors.horizontalCenter: parent.horizontalCenter
            text: "Load new!"

            // Returns "0" or "1" or "2". It's biased, but ok for the example.
            function randomDigit() : string {
                return (Math.random() * 2.4).toFixed(0)
            }
            onClicked: {
                root.imageName = "image" + randomDigit() + randomDigit() + randomDigit()
            }
        }
    }
}