Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Jkc от Января 26, 2011, 19:27



Название: Проблема с перерисовкой масштабированием под виндой.
Отправлено: Jkc от Января 26, 2011, 19:27
Были тормоза анимации после масштабирования способами
Код:
this->graphicsViewTop->setMatrix(QMatrix(k,0,0,k,0,0)); или 
graphicsViewTop->fitInView(scene_top->sceneRect(), Qt::IgnoreAspectRatio);

пришлось применить следующий способ для всех элементов.
Код:
void MainWindow::resizeEvent(QResizeEvent* pe)
{
...
QSize resultSize( graphicsViewTop->width() ,  graphicsViewTop->heith() );  // новый размер
...
QPixmap pmScaled = openedPix.scaled(resultSize, Qt::KeepAspectRatio, Qt::FastTransformation ); //
........

Под линуксом вроде всё нормально а вот под виндой, при запуске изображения сжаты не пойми как,
но только я изменяю размер окна все изображения правильно масштабируються  и занимают
правильные позиции. В чём проблема может кто подскажет?


Название: Re: Проблема с перерисовкой масштабированием под виндой.
Отправлено: igor_bogomolov от Января 26, 2011, 23:46
Какие у вас версии Qt под Linux и Windows?
Я тоже столкнулся с подобной ошибкой. Проявляется она только на версии Qt 4.7.x, на более ранних нет (от ОС не зависит).  Я пока откатился к более старой версии Qt.
И это не единственный регресс версии 4.7 в Graphics View Framework. Вот например еще одна ошибка http://www.prog.org.ru/topic_16125_0.html

Если можете создайте сообщение об ошибке на bugreports.qt.nokia.com


Название: Re: Проблема с перерисовкой масштабированием под виндой.
Отправлено: GreatSnake от Января 27, 2011, 10:01
Цитировать
Под линуксом вроде всё нормально а вот под виндой, при запуске изображения сжаты не пойми как,
но только я изменяю размер окна все изображения правильно масштабируються  и занимают
правильные позиции. В чём проблема может кто подскажет?
Проблема в том, что изменять размер пиксмапов нужно в перегруженном QGraphicsView::resizeEvent(), т.к. под виндой получается, что MainWindow::resizeEvent() отрабатывает раньше чем изменится размер graphicsViewTop.

Цитата: igor_bogomolov
Я тоже столкнулся с подобной ошибкой
Это не ошибка, т.к. нигде не оговаривается порядок отработки событий.


Название: Re: Проблема с перерисовкой масштабированием под виндой.
Отправлено: igor_bogomolov от Января 27, 2011, 11:16
Это не ошибка, т.к. нигде не оговаривается порядок отработки событий.
Согласен с вами. Поторопился я немного с выводами. Упростил свой тестовый пример и понял, что ошибка о которой я говорил другого рода, не имеющая отношения к проблеме ТС.


Название: Re: Проблема с перерисовкой масштабированием под виндой.
Отправлено: Jkc от Января 27, 2011, 14:12
У меня  QGraphicsView 5 штук, в каждом картинки, фон , анимация,  как можно всё это сделать проще?
 может пример есть у кого?