Russian Qt Forum
Ноябрь 24, 2024, 10:56
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
Рисование в QGraphicScene
Страниц:
1
[
2
]
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Рисование в QGraphicScene (Прочитано 23313 раз)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #15 :
Март 10, 2011, 16:53 »
Большое спасибо, разобрался и теперь все рисуется как надо!
Хотелось бы еще узнать следующее -
мне необходимо отображать на
карте
(QGraphicsScene)
двигающиеся
объекты
(QGraphicsItem, которые являются QPixmap из ресурсов)
. Перерисовка происходит каждые 10 мсек, путем установки
->setPos
для каждого объекта.
В результате во-первых сильно искажаются картинки, помещенные в QPixmap; во-вторых перерисовка идет крайне медленно и все тормозит. Необходимо как-то указывать точные области перерисовки? да и вообще правильно ли я делаю?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Рисование в QGraphicScene
«
Ответ #16 :
Март 10, 2011, 16:59 »
Показывай paint().
Записан
Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #17 :
Март 10, 2011, 17:03 »
вот
Код
C++ (Qt)
QPixmap
pixmap
(
":/img/res__su30.png"
)
;
painter
->
drawPixmap
(
0
,
0
,
pixmap
)
;
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Рисование в QGraphicScene
«
Ответ #18 :
Март 10, 2011, 17:07 »
пиксмапу в пееменную сохрани... каждый раз из файла читать кто угодно тормозить начнет
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Рисование в QGraphicScene
«
Ответ #19 :
Март 10, 2011, 17:14 »
Цитировать
QPixmap pixmap(":/img/res__su30.png");
Да уж... Мог бы и сам сразу догадаться...
Записан
Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #20 :
Март 10, 2011, 17:28 »
согласен!
добавил в конструкторе класса метод load, но проблема все равно не решилась.
объекты перестали двигаться. перерисовка выполняется только при движении скроллами или при щелчке мышкой рядом. неверно заданы зоны отрисовки?
boundingRect
задал прямоугольником 200х200
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Рисование в QGraphicScene
«
Ответ #21 :
Март 10, 2011, 17:32 »
Цитировать
неверно заданы зоны отрисовки?
Именно
Цитировать
boundingRect задал прямоугольником 200х200
А почему не задавать конкретные от QPixmap::rect() ?
Записан
Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #22 :
Март 10, 2011, 17:48 »
Цитата: GreatSnake
QPixmap::rect()
вот уж спасибо, не знал)!!!все отлично!
посоветуйте еще, как все-таки быть с тем, что при выполнении
->setRotation
картинка искажается?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Рисование в QGraphicScene
«
Ответ #23 :
Март 10, 2011, 18:00 »
Цитировать
посоветуйте еще, как все-таки быть с тем, что при выполнении ->setRotation картинка искажается?
Как искажается-то? И надо иметь в виду, что при повороте на угол не кратный 90 искажения будут по-любому.
Записан
Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #24 :
Март 10, 2011, 18:15 »
а ну да, все верно.я как понимаю, чтобы искажения были менее заметными необходимо брать картинку более высоко разрешения?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Рисование в QGraphicScene
«
Ответ #25 :
Март 10, 2011, 18:22 »
Да. Ну и поиграться со сглаживанием.
Записан
Qt 5.11/4.8.7 (X11/Win)
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #26 :
Март 11, 2011, 12:29 »
устанавливал антиалайзинг для QPainter и для QGraphicsView, но картинка все равно не сглаживается.
непонятно как это сделать именно для QPixmap, хотя видимо этой возможности совсем нет
Записан
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #27 :
Март 15, 2011, 19:20 »
товарищи, подскажите верно ли делаю -
необходимо нарисовать самолет и маршрут его движения. все соответственно в 2d
для этого создал
объект-самолет
, унаследованный от
QGraphicsItem
и включающий
объект-маршрут
, также унаследованный от
QGraphicsItem
объект-маршрут
состоит из массива координат и пополняется с определенным временным шагом.
когда создаю
объект-самолет
, то его и его
маршрут
добавляю к сцене. соответственно у каждого из объектов реализованы
->boundingRect
и
->paint
. маршрут рисую с помощью
->drawPath
Записан
ufna
Гость
Re: Рисование в QGraphicScene
«
Ответ #28 :
Март 15, 2011, 20:53 »
ну там еще есть куча флагов для QGV + флаг SmoothPixmapTransform никто не отменял (а именно он работает для поворотов)
Записан
deaks
Гость
Re: Рисование в QGraphicScene
«
Ответ #29 :
Март 15, 2011, 22:01 »
с изображением уже разобрался) но всеравно спасибо!
сейчас больше всего интересует как маршрут отображать
Записан
Страниц:
1
[
2
]
3
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...