Название: QGraphicScene и отображение линий Отправлено: Smogg от Декабрь 08, 2013, 19:19 У меня есть сцена, в которую добавлено сотня итемов. (пока разобрался лишь до сюда, как делать дальше - не понимаю)
Теперь мне нужно показывать отдельные итемы, а прочие прятать. Между показанными надо нарисовать линии. Потом перестраивать положение/видимость итемов и снова отрисовывать между ними линии. Собственно, линии - это тоже итемы сцены и их над добавлять как path'ы? Можно как-нить просто рисовать и стирать линии заданной ширины и положения? Название: Re: QGraphicScene и отображение линий Отправлено: Fregloin от Декабрь 08, 2013, 20:12 QGraphicsLineItem ...
Название: Re: QGraphicScene и отображение линий Отправлено: Smogg от Декабрь 08, 2013, 20:32 QGraphicsLineItem ... То есть все, что принадлежит сцене - это итемы, без исключений? И рисовать можно либо на итемах, (каковые потом трансформируются в соответствии с состоянием сцены), либо поверх всей сцены на поверхности QGraphicsView xthtp paintEvent (что возможно, но некрасиво)?Название: Re: QGraphicScene и отображение линий Отправлено: _OLEGator_ от Декабрь 09, 2013, 09:10 Можно не добавлять линии отдельно, а рисовать их в своем QGraphicsItem.
Но тогда 2 варианта: либо постоянно менять boundingRect() и позицию левого верхнего угла элемента, либо выставить у сцены полную перерисовку при каждом изменении и забить на boundingRect(). Название: Re: QGraphicScene и отображение линий Отправлено: Fregloin от Декабрь 13, 2013, 09:54 можно их еще рисовать в backgroundPaint но насколько это будет эффективно... в каком то примере (кажется тот же Шлее) там как раз ваш случай описывался, итемы котороые соедены линиями да еще и в динамике перемещаются.
Название: Re: QGraphicScene и отображение линий Отправлено: popper от Декабрь 13, 2013, 13:12 Вот еще хороший пример:
http://qt-project.org/doc/qt-4.8/graphicsview-elasticnodes.html Название: Re: QGraphicScene и отображение линий Отправлено: AlexEx от Декабрь 13, 2013, 13:37 Линии можно попробовать рисовать в QGraphicsScene::drawBackground или QGraphicsScene::drawForeground
|