Название: QGraphicsView тормозит в Linux Отправлено: IGHOR от Март 28, 2008, 03:13 Я сделал прогу на Qt4.3.4, компилил и дебаг делал под виндой с Visual Studio 2005.
Генерирую с помощью QGraphicsView+QGraphicsScene список что сочитает фотографии и текст. Под виндой все работает супер! А скомпилил под линуксом то при скролинге очень дергается список, тогда когда в QGraphicsView видно картинки. Как оптимизировать это ? Какие настройки ускорят QGraphicsView ? Название: Re: QGraphicsView тормозит в Linux Отправлено: IGHOR от Март 31, 2008, 03:36 Я нашел причину по какой оно тормозит..
Это когда применить scale() к любому QPixmapItem и при рендеринге его QGraphicsView очень тормозит. Это баг Qt ? почему оно тормозит ? Название: Re: QGraphicsView тормозит в Linux Отправлено: Tonal от Март 31, 2008, 06:59 Потому что scale для Pixmap изрядно не дешёвая операция.
Тебе оно точно надо? Может сначала все Pixmap-ы отмасштабировать в нужный размер, а потом уже такие показывать? Название: Re: QGraphicsView тормозит в Linux Отправлено: QDgara от Март 31, 2008, 13:37 Или сделай не реалтайм скейл.
Название: Re: QGraphicsView тормозит в Linux Отправлено: IGHOR от Март 31, 2008, 16:31 Есть 6 фоток, они уменьшеного размера.
При клике на них мышкой сделал анимацию плавного увеличения с полетом по (y=x*x) дуге, все это делается с помощью timeline связаного с QPixmap'ом используя scale... Потому что scale для Pixmap изрядно не дешёвая операция. а масштабировать 100 кадров картинок будет длинная задержка..Тебе оно точно надо? Может сначала все Pixmap-ы отмасштабировать в нужный размер, а потом уже такие показывать? фотки грузятся в динамическом режиме, часто перегружаются. Или сделай не реалтайм скейл. Это как ?Название: Re: QGraphicsView тормозит в Linux Отправлено: pastor от Март 31, 2008, 16:55 Можно немного оптимизировать работу с набором пиксмапов... Смасштабированные фотки складывать в QPixmapCache и доставать их потом уже из него. Т.е. фактически, масштабирование будет происходить один раз для конкретного размера. Работа через QPixmapCache должна увеличить производительность
Название: Re: QGraphicsView тормозит в Linux Отправлено: Tonal от Март 31, 2008, 17:16 transformMode = Qt::FastTransformation?
Можно попробовать разбить твою анимацию на несколько частей. Первый кадр каждой части предвычислить, а остальные рассчитывать. Ну и закешировать те, которые уже масштабировал. Название: Re: QGraphicsView тормозит в Linux Отправлено: IGHOR от Март 31, 2008, 18:07 Оно тормозит не при каждом использовании scale,
а после первого. Пример: Кинул фотку QGraphicsPixmap, компилю, смотрю, отображается нормально. Далее применяю к этому QGraphicsPixmap scale(0.9,0.9) и в проге больше это не трогаю, компилю, запускаю прогу и когда скролинг QGraphicsVeiw доходит до отображения этого QGraphicsPixmap то наченает очень тормозить QGraphicsVeiw и все что в нем (гдето 3 фпс). И так только на Линуксе, под виндой все в норме. Комп на каком тестирую: Intel 2.2 Dual Core, 4096 Mb DDR2, GeForce 8600GT 256 MB. Название: Re: QGraphicsView тормозит в Linux Отправлено: IGHOR от Март 31, 2008, 22:52 transformMode = Qt::FastTransformation? Это не помогло..Можно попробовать разбить твою анимацию на несколько частей. Первый кадр каждой части предвычислить, а остальные рассчитывать. Ну и закешировать те, которые уже масштабировал. видимо один выход.. вручную кадры делать.. Название: Re: QGraphicsView тормозит в Linux Отправлено: vaprele07 от Апрель 01, 2008, 02:58 На каждый элемент сцены можно установить размер кэша, еще можно задать моду кэшировать задний фон.
Название: Re: QGraphicsView тормозит в Linux Отправлено: IGHOR от Апрель 02, 2008, 05:52 На каждый элемент сцены можно установить размер кэша, еще можно задать моду кэшировать задний фон. Можно пример ? |