Название: Класс, унаследованный от QTextEdit. Не могу обновить изображение текста. Отправлено: xintrea от Июнь 19, 2009, 10:36 Здравствуйте!
В соседней теме QTextEdit - как показать невидимые символы (пробелы, табы, переводы строк) http://www.prog.org.ru/topic_9783_0.html (http://www.prog.org.ru/topic_9783_0.html) обсудили, как поверх текста рисовать символы разметки текста. Символы разметки рисуются. Для этого у меня используется класс EditorTextArea, унаследованный от QTextEdit, и в котором переопределён метод paintEvent(). Но теперь встала другая проблема. Есть кнопочка, которая включает/выключает отображение символов разметки текста. При её нажатии нужно обновить виджет так, чтоб вся область текста, и символы разметки поверх, обновились (т.е. символы разметки должны либо появиться, либо пропасть). Я делаю так Код: void EditorTextArea::set_showformatting(bool i) При вызове метода set_showformatting(), картинка на экране, по идее, должна обновиться. Но этого не происходит. Обновляется только та часть текста, которая появляется новой на экране (если, например, покрутить прокрутку). То есть, если, к примеру, включить отображение символов форматирования set_showformatting(true), то на экране они не покажутся. И если начать скроллировать текст, то на новом появляющемся тексте символы форматирования будут видны. А нужно, чтобы были стали видны сразу, на всём отображаемом в данный момент тексте. Я пробовал вызывать update() и repaint() без параметров, и вызывать как слоты через emit. Результат везде одинаковый - обновления не происходит. Вопрос - как принудительно обновить область виджета, чтобы он полностью перерисовался? Название: Re: Класс, унаследованный от QTextEdit. Не могу обновить изображение текста. Отправлено: pastor от Июнь 19, 2009, 10:44 viewport()->update() пробовал?
Название: Re: Класс, унаследованный от QTextEdit. Не могу обновить изображение текста. Отправлено: xintrea от Июнь 19, 2009, 12:13 |