2015-07-28 2 views
0

У меня есть QLineEdit для даты в формате mm/dd/yyyy. Из-за требования я получаю ввод с клавиатуры и не используя QDateEdit. И когда редактируется строка, она должна показывать пользователю текущую дату. Мне нужно следующее для редактирования строки.Qt LineEdit setInputMask() с setText() и QRegExp

  1. Мне нужно, чтобы две косые черты всегда отображались, и курсор должен пропустить при вводе или удалении.
  2. Я не должен позволять пользователю вводить недопустимую дату, то есть при вводе строки изменение строки не должно иметь недопустимые числа.
  3. Мне нужно установить текущую дату в качестве текста по умолчанию при появлении редактирования строки.

Для первой точки, я попытался с помощью setInputMask("99/99/9999"), но с этим я не могу установить текущую дату, используя setText(). И как использовать QRegExp, чтобы не разрешать редактирование строк, получить недопустимый номер при использовании setInputMask()?

ответ

0

QDateEdit будет служить вашей цели.

  1. использование setDisplayFormat("dd/MM/yyyy").

  2. QDateEdit не позволит недействительные даты

  3. Вы можете использовать QDateEdit::setDate(), полученный из QDateTime::currentDateTime()

+0

Я не должен использовать его. Мне нужно использовать QLineEdit. –

Смежные вопросы