В QML нет эквивалента.Но вы можете легко создать свой собственный виджет с TextField и пользовательским валидатором:
В QML:
TextField {
text : "01/01/1970 00:00:00"
inputMask: "99/99/9999 99:99:99"
validator: DateTimeValidator {}
}
В C ++:
// datetimevalidator.h
#include <QValidator>
#include <QDateTime>
class DateTimeValidator: public QValidator
{
public:
DateTimeValidator();
State validate(QString& input, int& pos) const;
};
// datetimevalidator.cpp
#include <datetimevalidator.h>
DateTimeValidator::DateTimeValidator(): QValidator()
{}
QValidator::State DateTimeValidator::validate(QString& input, int& pos) const
{
QDateTime dt = QDateTime::fromString(input, "MM/dd/yyyy HH:mm:ss");
if (dt.isNull()) // If null, the input cannot be parsed
{
return QValidator::Invalid;
}
return QValidator::Acceptable;
}
В main () зарегистрируйте свой валидатор, чтобы иметь возможность использовать его в QML:
#include "datetimevalidator.h"
int main(int argc, char** argv)
{
QApplication app(argc, argv);
qmlRegisterType<DateTimeValidator>("my.components", 1, 0, "DateTimeValidator");
...
}