Как сделать курсор LineEdit более тонким в режиме маски ввода? - PullRequest
0 голосов
/ 03 июля 2019

это курсор в обычном режиме LineEdit

enter image description here

и это курсор, когда есть маска ввода

enter image description here

Как видите, курсор с маской ввода толще. Как я могу изменить QLineEdit, чтобы получить тонкий курсор, как в обычном режиме для маски ввода?

1 Ответ

0 голосов
/ 03 июля 2019

Я не думаю, что есть что-то, что вы можете сделать без переопределения QLineEdit.

Но я не думаю, что вы должны. Внешний вид курсора имеет значение:

  • Тонкий курсор, расположенный между символами, означает, что вы будете вставлять текст, перемещая уже существующий текст.
  • Толстый курсор, выделяющий символ, означает, что вы замените текст, перезаписав существующий текст.

Обратите внимание, что это не Qt, а универсально. Например, если вы откроете командную строку, нажатие клавиши «Вставить» переключит курсор из одного режима в другой;

Когда вы используете маску ввода, QLineEdit работает в режиме замены, поэтому вполне нормально иметь толстый курсор.

Принудительное отображение курсора в тонком режиме вводит пользователей в заблуждение и является очень плохой идеей UX.

Редактировать

Другим решением будет использование QValidator, например QRegularExpressionValidator. Это не совсем то же самое, что и маска ввода, но оно служит той же цели и не вызывает принудительный режим вставки.

...