在QlineEdit中输入日期的掩码和验证器

时间:2018-12-04 11:19:32

标签: qt

我想在Qt中实现QlineEdit,它将具有输入掩码“ 00/00/0000”(mm / dd / yyyy)和有效的正则表达式,以检查用户是否输入了有效日期。 以下是我的代码,但是它不起作用。有人可以帮我吗?

    QString str1 = "(0[1-9]|1[012])";
    QString str2 = "(0[1-9]|[12][0-9]3[01])";
    QString str3 = "(19|20)[0-9][0-9]";
    QRegExp ipRegex ("^" + str1
                     + "\\/" + str2
                     + "\\/" + str3
                     + "$");    

    QRegExpValidator *ipValidator = new QRegExpValidator(ipRegex, this);
    ui->lineEdit->setValidator(ipValidator);
    ui->lineEdit->setInputMask("00/00/0000");

    // Avoid having to move cursor before typing
    ui->lineEdit->setCursorPosition(0);

2 个答案:

答案 0 :(得分:0)

这对我有用。

QRegExp ipRegex ("(0[1-9]|[12][0-9]|3[01]{1,2})/(0[1-9]|[12]{1,2})/(19[0-9][0-9]|20[0-9][0-9])");

答案 1 :(得分:0)

我建议您尝试一下code

// Set date validator for date lineedit
QRegExp R_date("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|[1][0-2])/(19[0-9][0-9]|20[0-9][0-9])");
QRegExpValidator *valida = new QRegExpValidator(R_date, this);
ui->lineEdit->setValidator(valida);

// Set place holder for date lineedit
ui->lineEdit->setPlaceholderText("Example : 21/05/2019");

会是这样的:

enter image description here