Qt LineEdit setInputMask()with setText()和QRegExp

问题描述 投票:0回答:1

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

  1. 我需要始终显示两个斜杠,并且在输入或删除时光标必须跳过。
  2. 我不应该允许用户输入无效日期,即在输入自身时lineEdit不应该获得无效数字。
  3. lineEdit出现时,我必须将当前日期设置为默认文本。

第一点,我尝试使用setInputMask("99/99/9999"),但有了这个我无法使用setText()设置当前日期。如何使用QRegExp不允许lineEdit使用setInputMask()获得无效数字?

qt qlineedit qregexp qdate
1个回答
0
投票

QDateEdit将满足您的目的。

  1. 使用setDisplayFormat("dd/MM/yyyy")
  2. QDateEdit不允许无效日期
  3. 你可以使用从QDateEdit::setDate()获得的QDateTime::currentDateTime()
© www.soinside.com 2019 - 2024. All rights reserved.