Time Edit field in QML
-
I need to implement a
TimeEdit
(HH:MM:SS) field in QML similar toQTimeEdit
in QT C++. In QML I didn't find TimeEdit and I have implemented the control similar to TimeEdit usingTextField
and if I add inputMask then the Regular expression is not at all validated, Is there any way that I can achieve this? Following is the code.import QtQuick 2.7 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 Window { visible: true width: 640 height: 480 title: qsTr("Time Edit") TextField{ id:textEditTD text : "" inputMethodHints: Qt.ImhDigitsOnly inputMask: "dd:dd:dd; " validator: RegExpValidator { regExp: /^([0-1]?[0-9]|2[0-3]):([0-5][0-9]):[0-5][0-9]$ / } width:100 height:50 background:Rectangle{ color:"transparent" border.color: "red" border.width:2 radius:(width * 0.05) } } }
-
Hi @pra7
Your code is correct but you have to add an input mask also
inputMask: "99:99:99"//input mask text: "00:00:00" //default text
Your code will code to something like this:
import QtQuick 2.7 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 Window { visible: true width: 640 height: 480 title: qsTr("Time Edit") TextField{ id:textEditTD text : "00:00:00" inputMask: "99:99:99" inputMethodHints: Qt.ImhDigitsOnly validator: RegExpValidator { regExp: /^([0-1]?[0-9]|2[0-3]):([0-5][0-9]):[0-5][0-9]$ / } width:100 height:50 background:Rectangle{ color:"transparent" border.color: "red" border.width:2 radius:(width * 0.05) } } }
This should work ...
-
@mostefa Thanks it almost works but backspace is not working.
For Example : If i enter12:12:12
and try to clear the value usingbackspace
then it's not working. My expectation is that it should become00:00:00
. Is there any way to achieve this ? -
@Praveen_2017 said in Time Edit field in QML:
@mostefa Thanks it almost works but backspace is not working.
For Example : If i enter12:12:12
and try to clear the value usingbackspace
then it's not working. My expectation is that it should become00:00:00
. Is there any way to achieve this ?What if you match backspace for each digits in your expressions?
You have to change your regExp on your validator to something like this:
validator: RegExpValidator { regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s]):([0-5\s][0-9\s])$ / }
-
This post is deleted!
-
Im not regExp pro but this is working
TextField{
id:textEditTD
text : "00:00:00"
inputMask: "99:99:99"
inputMethodHints: Qt.ImhDigitsOnly
validator: RegExpValidator { regExp: /^([0-1\s]?[0-9\s]|2[0-3\s]):([0-5\s][0-9\s]):([0-5\s][0-9\s])$ / }width:100 height:50 }
LA