Текстовый формат по умолчанию для QTextEdit

Я не понимаю. Я устанавливаю формат символов, формат блока, формат корневого фрейма и размер страницы для всего текста в элементе управления QTextEdit. И тогда, если я вручную удалю весь текст и начну набирать новый, или если я выделю весь текст и вставлю новый из буфера, то вуаля! - все форматирование теряется.

Можно ли установить формат по умолчанию для QTextEdit (символы, блоки, страницы и т. д.)?


person Alex Nevskiy    schedule 25.09.2017    source источник
comment
Я думаю, что форматирование зависит от положения курсора. При его изменении текущий формат также может быть изменен. Я мог бы обработать сигнал currentCharFormatChanged, чтобы увидеть, что и когда происходит при редактировании текста.   -  person vahancho    schedule 25.09.2017
comment
Я обработал этот сигнал и попытался обновить форматирование, и это частично работает. Спасибо, вы направили меня на правильный путь.   -  person Alex Nevskiy    schedule 25.09.2017


Ответы (1)


Я решил это следующим образом.

Обработал сигнал QTextEdit::currentCharFormatChanged (как подсказал vahancho) и вызвал QTextEdit::setTextCursor с нужным курсором форматирования. Это решает проблему с char и блочным форматом.

Для формата pageSize и rootFrame я обработал сигнал QTextEdit::document::documentLayout update, и если формат rootFrame или pageSize документа был изменен, то resetup снова нужные размеры.

person Alex Nevskiy    schedule 25.09.2017