Delay function
Unsolved
QML and Qt Quick
-
Hi
I was creating a sine wave by using canvas how to add delay function
Can someone help me to solve it how to add how to usimport QtQuick 2.9 import QtQuick.Window 2.15 Window { function timer() { return Qt.createQmlObject("import QtQuick 2.0; Timer {}", root); } id:screen visible:true height: 1080 width: 1920 title: qsTr("SineWave") Rectangle{ height:parent.height width:parent.width Timer { id: timer } function delay(delayTime, cb) { timer.interval = delayTime; timer.repeat = false; timer.triggered.connect(cb); timer.start(); } Canvas{ id:canvas anchors.fill:parent onPaint: { var ctx = getContext("2d"); var cw = parent.width; var ch = parent.height; var cx = cw, cy = ch/2; var w= width; var h= height; ctx.lineWidth= 4; ctx.clearRect(0, 0, cw, ch); ctx.beginPath(); ctx.moveTo(0, cy); for(var x=0;x<1921;x++){ var y = Math.sin(x/305); ctx.lineTo(x, cy+(y*400));//now you add delay of 1sec console.log(y) }//from here the sine wave is plotted from left to right clean the screen with small from left to right ctx.stroke(); showMaximized(Window) } } } }
-
What kind of delay? Is
Qt.callLater()
enough? -
OK and you want to delay the painting?
Or you ask how to mathematically delay the sine so it starts at a different value?
-
@sierdzio once check the code and tell me how to solve it i add timer where i need to call it
I don't know about timmer i was trying it can u help me out
I need output like i need a delay 1 millisecond between 1 plotting to another plotting -
Just throw in
await sleep(1);
at the end of your JS code, then.