Qt LineEdit setInputMask()with setText()和QRegExp

时间:2015-07-28 14:29:22

标签: qt qlineedit qregexp qdate

QLineEdit格式的日期mm/dd/yyyy。我正在使用键盘输入,而不是因为要求而使用QDateEdit。当lineEdit开始查看时,它必须向用户显示当前日期。我需要以下lineEdit

  1. 我需要始终显示两个斜杠,并且在输入或删除时光标必须跳过。
  2. 我不应该允许用户输入无效日期,即在输入时lineEdit不应该收到无效的数字。
  3. lineEdit开始查看时,我必须将当前日期设置为默认文本。
  4. 首先,我尝试使用setInputMask("99/99/9999"),但是我无法使用setText()设置当前日期。使用QRegExp时如何使用lineEdit不允许setInputMask()获取无效的号码?

1 个答案:

答案 0 :(得分:0)

QDateEdit将满足您的目的。

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

  2. QDateEdit不允许无效日期

  3. 您可以使用从中获取的QDateEdit::setDate() QDateTime::currentDateTime()