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

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

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: Рисование в QGraphicScene  (Прочитано 23310 раз)
deaks
Гость
« Ответ #15 : Март 10, 2011, 16:53 »

Большое спасибо, разобрался и теперь все рисуется как надо! Подмигивающий

Хотелось бы еще узнать следующее -
мне необходимо отображать на карте(QGraphicsScene) двигающиеся объекты(QGraphicsItem, которые являются QPixmap из ресурсов). Перерисовка происходит каждые 10 мсек, путем установки ->setPos для каждого объекта.

В результате во-первых сильно искажаются картинки, помещенные в QPixmap; во-вторых перерисовка идет крайне медленно и все тормозит. Необходимо как-то указывать точные области перерисовки? да и вообще правильно ли я делаю?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #16 : Март 10, 2011, 16:59 »

Показывай paint().
Записан

Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
« Ответ #17 : Март 10, 2011, 17:03 »

вот
Код
C++ (Qt)
    QPixmap pixmap(":/img/res__su30.png");
    painter->drawPixmap(0,0, pixmap);
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #18 : Март 10, 2011, 17:07 »

пиксмапу в пееменную сохрани... каждый раз из файла читать кто угодно тормозить начнет
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #19 : Март 10, 2011, 17:14 »

Цитировать
QPixmap pixmap(":/img/res__su30.png");
Да уж... Мог бы и сам сразу догадаться...
Записан

Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
« Ответ #20 : Март 10, 2011, 17:28 »

согласен!
добавил в конструкторе класса метод load, но проблема все равно не решилась.

объекты перестали двигаться. перерисовка выполняется только при движении скроллами или при щелчке мышкой рядом. неверно заданы зоны отрисовки? boundingRect задал прямоугольником 200х200
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #21 : Март 10, 2011, 17:32 »

Цитировать
неверно заданы зоны отрисовки?
Именно
Цитировать
boundingRect задал прямоугольником 200х200
А почему не задавать конкретные от QPixmap::rect() ?
Записан

Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
« Ответ #22 : Март 10, 2011, 17:48 »

Цитата: GreatSnake
QPixmap::rect()

вот уж спасибо, не знал)!!!все отлично!

посоветуйте еще, как все-таки быть с тем, что при выполнении ->setRotation картинка искажается?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #23 : Март 10, 2011, 18:00 »

Цитировать
посоветуйте еще, как все-таки быть с тем, что при выполнении ->setRotation картинка искажается?
Как искажается-то? И надо иметь в виду, что при повороте на угол не кратный 90 искажения будут по-любому.
Записан

Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
« Ответ #24 : Март 10, 2011, 18:15 »

а ну да, все верно.я как понимаю, чтобы искажения были менее заметными необходимо брать картинку более высоко разрешения?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #25 : Март 10, 2011, 18:22 »

Да. Ну и поиграться со сглаживанием.
Записан

Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
« Ответ #26 : Март 11, 2011, 12:29 »

устанавливал антиалайзинг для QPainter и для QGraphicsView, но картинка все равно не сглаживается.
непонятно как это сделать именно для QPixmap, хотя видимо этой возможности совсем нет
Записан
deaks
Гость
« Ответ #27 : Март 15, 2011, 19:20 »

товарищи, подскажите верно ли делаю -

необходимо нарисовать самолет и маршрут его движения. все соответственно в 2d

для этого создал объект-самолет, унаследованный от QGraphicsItem и включающий объект-маршрут, также унаследованный от QGraphicsItem

объект-маршрут состоит из массива координат и пополняется с определенным временным шагом.

когда создаю объект-самолет, то его и его маршрут добавляю к сцене. соответственно у каждого из объектов реализованы
->boundingRect и ->paint . маршрут рисую с помощью ->drawPath
Записан
ufna
Гость
« Ответ #28 : Март 15, 2011, 20:53 »

ну там еще есть куча флагов для QGV + флаг SmoothPixmapTransform никто не отменял (а именно он работает для поворотов)
Записан
deaks
Гость
« Ответ #29 : Март 15, 2011, 22:01 »

с изображением уже разобрался) но всеравно спасибо!

сейчас больше всего интересует как маршрут отображать
Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


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