Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Январь 07, 2016, 02:20



Название: QTextEdit: Как «отцепиться» от ссылки?
Отправлено: xintrea от Январь 07, 2016, 02:20
В QTextEdit есть стандартное поведение: печатающийся символ повторяет форматирование предыдущего символа. Это поведение разумно для обычного форматирования (bold, italic, и т.д.), но неудобно для работы со ссылками (анкорами, URL-ами) в тексте. Ссылки - это редкие и короткие гости в тексте.

Если в тексте в QTextEdit пару слов преобразовать в ссылку, и попытаться продолжить печатать обычный текст сразу после ссылки, то ничего не получится. Ссылка будет продолжать печататься, так как новые символы получают форматирование предыдущего символа.

И нужно сделать такое поведение: при нажатии Пробела или TAB сразу после ссылки - менять форматирование нового символа на обычный (без анкора). То же самое и при вставке из буфера обмена. А если нажатие Пробела или TAB происходит внутри ссылки - то ничего не делать, пускай это будет ссылка.

То есть, мне нужно каким-то образом отлавливать момент, когда появляется символ сразу после ссылки и подправлять его форматирование.

Вопрос: как отловить этот момент? Я не могу найти событие добавления символа, а обработка keyPressEvent() не поможет, ибо вставка символов возможна и из буфера обемна, и драганддропом, и хотелось бы универсальности.