Russian Qt Forum
Июня 20, 2025, 20:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отключение\включение автоскроллинга QTextEdit  (Прочитано 5520 раз)
cupuyc.
Гость
« : Декабря 02, 2014, 15:24 »

Доброго времени суток.
Нужно сделать отключение и включение автопрокрутки на QTextEdit по нажатию на чекбокс.
Собственно вопрос: как отключить, а потом включить автопрокрутку текста в QTextEdit.
« Последнее редактирование: Декабря 02, 2014, 15:53 от cupuyc. » Записан
ammaximus
Гость
« Ответ #1 : Декабря 03, 2014, 08:48 »

Я ловил изменение и вызывал QAbstractScrollArea::scrolltobottom. Check box изменял мою переменную, которую я проверял перед вызовом.
Записан
cupuyc.
Гость
« Ответ #2 : Декабря 03, 2014, 09:42 »

Я ловил изменение и вызывал QAbstractScrollArea::scrolltobottom. Check box изменял мою переменную, которую я проверял перед вызовом.

А можно поподробнее? Как включить прокрутку в конец я нашел. Когда установлен чек бокс, я выполняю этот код ,после вставки новой строки:

QScrollBar* sb = textEdit->verticalScrollBar();
sb->setValue(sb->maximum());

...но вот как ее отключить, причем с возможностью прокрутки колесиком мыши и таскания за слайдер. По умолчанию, когда в QTextEdit заносятся строки, слайдер прокручивает окно на последнюю занесенную строку и отключить это можно только если кликнуть на окне QTextEdit.
Записан
ammaximus
Гость
« Ответ #3 : Декабря 03, 2014, 11:08 »

А, ну если уже взял QScrollBar то можно сделать и через него:
1. Перед вставкой текста получай value.
2. Если value==bottom ставишь флаг ничего не делать, если value где-то еще - сохраняешь value.
3. Добавляешь текст. Если сохранял value - возвращаешь его.

Получается эффект "прилипания" скроллбара, очень популярное решение и чекбокс не нужен.
Записан
cupuyc.
Гость
« Ответ #4 : Декабря 03, 2014, 13:23 »

А, ну если уже взял QScrollBar то можно сделать и через него:
1. Перед вставкой текста получай value.
2. Если value==bottom ставишь флаг ничего не делать, если value где-то еще - сохраняешь value.
3. Добавляешь текст. Если сохранял value - возвращаешь его.

Получается эффект "прилипания" скроллбара, очень популярное решение и чекбокс не нужен.

спасибо, остановился на этом варианте.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 1.522 секунд. Запросов: 21.