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

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

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: Рисование в QGraphicScene  (Прочитано 23781 раз)
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.065 секунд. Запросов: 23.