LINUX.ORG.RU

QTextEdit: Как «отцепиться» от ссылки?

 , , ,


0

1

В QTextEdit есть стандартное поведение: печатающийся символ повторяет форматирование предыдущего символа. Это поведение разумно для обычного форматирования (bold, italic, и т.д.), но неудобно для работы со ссылками (анкорами, URL-ами) в тексте. Ссылки - это редкие и короткие гости в тексте.

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

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

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

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

★★★★★

Ответ на: комментарий от Xintrea

http://doc.qt.io/qt-5/qtextedit.html: Inherits: QAbstractScrollArea

http://doc.qt.io/qt-5/qabstractscrollarea.html

Там тебе все ивенты расписаны, переопределяй скок хощ.

UPD: Ой, по вопросу-то. Наследуй QTextEdit, щоб проще было, и переопределяй protected от QAbstractScrollArea. Если ничего не выйдет (вполне возможно), то извини и не ругай. В таком случае мне надо будет вспоминать практику кутэ.

alextk ()
Последнее исправление: alextk (всего исправлений: 1)
Ответ на: комментарий от alextk

Там тебе все ивенты расписаны, переопределяй скок хощ.

Такого эвента нету, который бы отлавливал момент, когда появляется символ сразу после ссылки.


UPD: Ой, по вопросу-то. Наследуй QTextEdit, щоб проще было, и переопределяй protected от QAbstractScrollArea.

При чем тут вообще QAbstractScrollArea?

Xintrea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.