QML refresh
-
- I wanna do something like this
if start clicked
start timer trigger {
can_Start(); //This should refresh every second
}if stop clicked
stop timer trigger {
can_Start(); //Disable from refreshing
can_Stop(); //This should refresh every second
}if setup clicked
can_Setup(); //Run only once from start to end of program** in the following code
@
import QtQuick 1.1Rectangle {
id: mainWindow
width: 800
height: 480
color: "#00000000"signal signalReceived1; function updateReceived1(text) { c410_out_text1.text = text+" %" } signal signalReceived2; function updateReceived2(text) { c410_out_text2.text = text+" DegC" } signal signalReceived3; function updateReceived3(text) { c410_out_text3.text = text } signal signalReceived4; function updateReceived4(text) { c410_out_text4.text = text+" amps" } function currentDateTime() { var today = new Date(); today.setDate(today.getDate()) dateTime_text.text = Qt.formatDateTime(today, "MM/dd/yyyy"); } function onStartSetText(){ if (stop_text.focus == true) { c410_out_text1 = "" //clear text c410_out_text2 = "" //clear text c410_out_text3 = "" //clear text c410_out_text4 = "" //clear text } } property bool ok: false property int num: 0 property string setup //Pass setup button value function can_Setup(){ setup = setup_text.text; start = ""; stop = ""; CANReceiver.canConfig(setup, start, stop); console.log("Setup Clicked"); } property string start //Pass start button value function can_Start(){ setup = ""; start = start_text.text; stop = ""; CANReceiver.canConfig(setup, start, stop); signalReceived1(); signalReceived2(); signalReceived3(); signalReceived4(); console.log("Start Clicked"); } property string stop //Pass stop button value function can_Stop(){ setup = ""; start = ""; stop = stop_text.text; CANReceiver.canConfig(setup, start, stop); onStartSetText(); console.log("Stop Clicked"); } function allCan(){ if (stop_text.text == "Stop"){ can_Stop(); }else if (start_text.text == "Start"){ can_Start() } } Text { id: c410_out_text1 x: 187 y: 1 width: 490 height: 50 font.pixelSize: 12 Timer { repeat: true running: true triggeredOnStart: true interval: 1000 onTriggered: { allCan(); } } font.bold: true horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } Rectangle { id: start_rec x: 60 y: 110 width: 150 height: 50 color: "#000000" MouseArea { id: start_mousearea x: 0 y: 0 width: 150 height: 50 onPressed: { start_rec.opacity = .8 } onReleased: { start_rec.opacity = 1 } onClicked: { } } Text { id: start_text x: 0 y: 0 width: 150 height: 50 color: "#ffffff" text: qsTr("Start") font.pointSize: 13 font.bold: true horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter font.pixelSize: 12 } Item { id: start_item x: 0 y: 0 width: 150 height: 50 } } Rectangle { id: stop_rec x: 590 y: 110 width: 150 height: 50 color: "#000000" MouseArea { id: stop_mousearea x: 0 y: 0 width: 150 height: 50 onPressed: { stop_rec.opacity = .8 } onReleased: { stop_rec.opacity = 1 } onClicked: { } } Text { id: stop_text x: 0 y: 0 width: 150 height: 50 color: "#ffffff" text: qsTr("Stop") font.pixelSize: 12 font.bold: true font.pointSize: 13 horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } Item { id: stop_item x: 0 y: 0 width: 150 height: 50 } } Rectangle { id: setup_rec x: 319 y: 110 width: 150 height: 50 color: "#000000" MouseArea { id: setup_mousearea x: 0 y: 0 width: 150 height: 50 onPressed: { setup_rec.opacity = .8 } onReleased: { setup_rec.opacity = 1 } onClicked: { } } Text { id: setup_text x: 0 y: 0 width: 150 height: 50 color: "#ffffff" text: qsTr("Setup") font.pixelSize: 12 font.bold: true font.pointSize: 13 horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } Item { id: setup_item x: 0 y: 0 width: 150 height: 50 } }
}@
-
I think you can easily implement it using "Timer":http://qt-project.org/doc/qt-5.0/qtqml/qml-qtquick2-timer.html in QML
-
I am a beginner so not yet familiar with all of it can u show me in the up example how
-
Thanks got it fixed, i gave an id for the timer and called it with id.start();