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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QGraphicScene и отображение линий  (Прочитано 3808 раз)
Smogg
Гость
« : Декабрь 08, 2013, 19:19 »

У меня есть сцена, в которую добавлено сотня итемов. (пока разобрался лишь до сюда, как делать дальше - не понимаю)
Теперь мне нужно показывать отдельные итемы, а прочие прятать. Между показанными надо нарисовать линии. Потом перестраивать положение/видимость итемов и снова отрисовывать между ними линии.

Собственно, линии - это тоже итемы сцены и их над добавлять как path'ы? Можно как-нить просто рисовать  и стирать линии заданной ширины и положения?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Декабрь 08, 2013, 20:12 »

QGraphicsLineItem ...
Записан
Smogg
Гость
« Ответ #2 : Декабрь 08, 2013, 20:32 »

QGraphicsLineItem ...
То есть все, что принадлежит сцене - это итемы, без исключений? И рисовать можно либо на итемах, (каковые потом трансформируются в соответствии с состоянием сцены), либо поверх всей сцены на поверхности QGraphicsView xthtp paintEvent (что возможно, но некрасиво)?
Записан
_OLEGator_
Гость
« Ответ #3 : Декабрь 09, 2013, 09:10 »

Можно не добавлять линии отдельно, а рисовать их в своем QGraphicsItem.
Но тогда 2 варианта: либо постоянно менять boundingRect() и позицию левого верхнего угла элемента, либо выставить у сцены полную перерисовку при каждом изменении и забить на boundingRect().
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #4 : Декабрь 13, 2013, 09:54 »

можно их еще рисовать в backgroundPaint но насколько это будет эффективно... в каком то примере (кажется тот же Шлее) там как раз ваш случай описывался, итемы котороые соедены линиями да еще и в динамике перемещаются.
Записан
popper
Гость
« Ответ #5 : Декабрь 13, 2013, 13:12 »

Вот еще хороший пример:
  http://qt-project.org/doc/qt-4.8/graphicsview-elasticnodes.html
Записан
AlexEx
Чайник
*
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #6 : Декабрь 13, 2013, 13:37 »

Линии можно попробовать рисовать в QGraphicsScene::drawBackground или QGraphicsScene::drawForeground
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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