Я создаю элемент управления прокруткой в Qt с нуля, и мне удалось вычислить положение центра слайдера в вертикальной полосе прокрутки. Полоса прокрутки прикреплена к окну редактирования, а добавление линий приводит к тому, что слайдер идет вниз. Ползунок - это всего лишь небольшой красный круг.Логарифмическое поведение полосы прокрутки
Проблема заключается в том, что при добавлении большого количества строк (удерживая нажатой клавишу Enter) слайдер в конце концов доходит до конца панели и выходит за ее пределы, где его больше не видно.
Если вы попытаетесь вставить огромное количество новых строк на любой блокноте, слайдер со временем станет медленнее и медленнее (кроме того, чтобы все меньше и меньше).
Как я могу выполнить то же самое со своим положением ползунка? Чтобы было ясно: как я могу выполнить «логарифмическое поведение» с помощью моей настраиваемой полосы прокрутки? то есть, как сделать слайдер медленнее и медленнее (таким образом, чтобы он никогда не достиг дна) при вставке множества новых строк
Проблема заключается в том, что вы не обновляете максимальное количество строк при изменении текста. Позиция полосы прокрутки должна быть равна 'available_height * current_line/max_lines', где' max_lines' следует всегда синхронизировать с тем, что находится в вашем текстовом поле. – Rufflewind
Это решило мою проблему, спасибо! Сделайте это ответом, и я приму его – Dean