Я не думаю, что есть что-то, что вы можете сделать без переопределения QLineEdit.
Но я не думаю, что вы должны. Внешний вид курсора имеет значение:
- Тонкий курсор, расположенный между символами, означает, что вы будете вставлять текст, перемещая уже существующий текст.
- Толстый курсор, выделяющий символ, означает, что вы замените текст, перезаписав существующий текст.
Обратите внимание, что это не Qt, а универсально. Например, если вы откроете командную строку, нажатие клавиши «Вставить» переключит курсор из одного режима в другой;
Когда вы используете маску ввода, QLineEdit работает в режиме замены, поэтому вполне нормально иметь толстый курсор.
Принудительное отображение курсора в тонком режиме вводит пользователей в заблуждение и является очень плохой идеей UX.
Редактировать
Другим решением будет использование QValidator
, например QRegularExpressionValidator
. Это не совсем то же самое, что и маска ввода, но оно служит той же цели и не вызывает принудительный режим вставки.