CopyPastor

Detecting plagiarism made easy.

Score: 0.8077360987663269; Reported for: String similarity Open both answers

Possible Plagiarism

Plagiarized on 2020-11-29
by mike510a

Original Post

Original - Posted on 2017-11-05
by folibis



            
Present in both answers; Present only in the new answer; Present only in the old answer;

Move your object creation code into a separate Timer with a small interval, and rather than creating all of the objects at once, create them maybe 50 at a time every 25 MS or something.

This will allow for the main event loop to process other things like the animations for busy indicator while its loading.
Here's one way to go about implementing this
import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.3 Window { property int pbValue: 0 visible: true width: 500 height: 400 title: qsTr("Hello World") Rectangle { id: mySplashScreen anchors.fill: parent ProgressBar { // changed handling of progress bar id: pBar height: 20 width: parent.width anchors.bottom: parent.bottom from: 0 value: compList.length // bind this value to: 15000 } BusyIndicator { anchors.right: parent.right running: (pbValue < pBar.to + 1) } Button { text: "click me" onClicked: { timer.running = true } } } property var compList: [] // created property to store all created components to track what has been done Timer { id: timer interval: 25 running: false repeat: true onTriggered: { for (var i = 0; i < 50; i++) { var comp = mycomp.createObject(mySplashScreen) // moved component into timer compList.push(comp) // added component to huge list of components for tracking }
pbValue = compList.length if ((pbValue >= 15000)) { timer.running = false console.log("All components completed") } } } Component { id: mycomp Rectangle { width: 200 height: 200 color: "green" } } }

As for me I guess its bad idea to overwrite system behavior of controls. Anyway, you can play with animated gradient. For example:
<!-- language: lang-js -->
ProgressBar { id: control anchors.centerIn: parent value: 0 height: 20 clip: true background: Rectangle { implicitWidth: 200 implicitHeight: 6 border.color: "#999999" radius: 5 } contentItem: Item { implicitWidth: 200 implicitHeight: 4
Rectangle { id: bar width: control.visualPosition * parent.width height: parent.height radius: 5 }
LinearGradient { anchors.fill: bar start: Qt.point(0, 0) end: Qt.point(bar.width, 0) source: bar gradient: Gradient { GradientStop { position: 0.0; color: "#17a81a" } GradientStop { id: grad; position: 0.5; color: Qt.lighter("#17a81a", 2) } GradientStop { position: 1.0; color: "#17a81a" } } PropertyAnimation { target: grad property: "position" from: 0.1 to: 0.9 duration: 1000 running: true loops: Animation.Infinite } } LinearGradient { anchors.fill: bar start: Qt.point(0, 0) end: Qt.point(0, bar.height) source: bar gradient: Gradient { GradientStop { position: 0.0; color: Qt.rgba(0,0,0,0) } GradientStop { position: 0.5; color: Qt.rgba(1,1,1,0.3) } GradientStop { position: 1.0; color: Qt.rgba(0,0,0,0.05) } } } } PropertyAnimation { target: control property: "value" from: 0 to: 1 duration: 5000 running: true loops: Animation.Infinite } }

        
Present in both answers; Present only in the new answer; Present only in the old answer;