首页 文章

Qt LineEdit setInputMask()with setText()和QRegExp

提问于
浏览
0

我的日期为mm / dd / yyyy格式 QLineEdit . 我正在使用键盘输入,而不是因为要求而使用 QDateEdit . 当行编辑进入视图时,它必须向用户显示当前日期 . 我需要以下内容进行行编辑 .

  • 我需要始终显示两个斜杠,并且在输入或删除时光标必须跳过 .

  • 我不应该允许用户输入无效日期,即在输入自身时,行编辑不应该得到无效的数字 .

  • 当行编辑进入视图时,我必须将当前日期设置为默认文本 .

对于第一点,我尝试使用 setInputMask("99/99/9999") 但是这样我无法使用 setText() 设置当前日期 . 如何使用QRegExp不允许行编辑在使用 setInputMask() 时获取无效数字?

1 回答

  • 0

    QDateEdit将满足您的目的 .

    • 使用 setDisplayFormat("dd/MM/yyyy") .

    • QDateEdit 不允许无效日期

    • 您可以使用 QDateEdit::setDate()QDateTime::currentDateTime() 获取

相关问题