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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Плавный скроллинг в QT  (Прочитано 7781 раз)
troorl
Гость
« : Август 15, 2006, 09:55 »

Задался целью написать программу, о которой уже давно втихаря мечтал (Just for fun) - читалу электронных книг.
Одним из требований является плавный скролл текста (возможно автопрокрутка, плавное листание). Также хочеться реализовать постраничное листание не зависимо от размера окна (т.е. пользователь нажимает на пробел - и страничка сама плавно прокручивается вверх ровно настолько, чтобы последняя видимая строка стала первой невидимой).
Что-то похожее есть в ICE Book Reader. Но там алгоритм этой прокрутки меня немного пугает. Автор этой программы при прокрутке манипулирует не текстом, а изображением этого текста (предварительнно сохраняя его в буфер). Это даёт возможность сделать кэш, что при быстром листании очень даже выручает.
В Linux видел такую фичу на примере Kpdf - читалка pdf-файлов для KDE. Даже когда у меня стояли медленные дрова на видео эта программа максимально плавно прокручивала страницы (хотя сдаётся мне, что без перегонки изображения в буфер там тоже не обошлось).

Так вот собственно хотел поинтересоваться. Может у кого-то есть какие-то мысли есть по поводу того, как вышеописанные вещи можно реализовать на чистом QT? Желательно сам принцип.
Записан
Hordi
Гость
« Ответ #1 : Август 15, 2006, 10:04 »

если о qt3 говорить, то юзаешь QCanvas - плавное передвижение достаточно большого текста очень даже реальная штука.
Записан
troorl
Гость
« Ответ #2 : Август 15, 2006, 10:37 »

Цитата: "Hordi"
если о qt3 говорить, то юзаешь QCanvas - плавное передвижение достаточно большого текста очень даже реальная штука.
А стоят ли затраты на расчёты размеров текста и буфера и прочего гемороя конечного результата? Я имею в виду, намного ли это сложнее, чем просто воспользоваться QTextBrowser? При условии, что размер шрифта можно будет менять на лету, да и сам шрифт будет неоднородным. Здесь всё упирается в количество символов, которые нужно передать на канву, чтобы полностью её заполнить.
Записан
QCasper
Гость
« Ответ #3 : Август 15, 2006, 21:09 »

firefox довольно плавно скролит при нажатии на среднюю кнопку мыши.
Записан
Hordi
Гость
« Ответ #4 : Август 15, 2006, 21:56 »

2 troorl:
Стоит, тем более не намного все сложнее.
Записан
Вудруф
Гость
« Ответ #5 : Август 16, 2006, 05:39 »

QCasper: отнюдь. У BookReader'а более плавная прокрутка. А Firefox мерцает Грустный
Записан
QCasper
Гость
« Ответ #6 : Август 16, 2006, 10:21 »

Цитата: "Вудруф"
QCasper: отнюдь. У BookReader'а более плавная прокрутка. А Firefox мерцает Грустный


да.. сейчас вот на другой машине действительно заметил мерцание, дома не мерцало Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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