Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Alucard от Август 31, 2012, 23:16



Название: QGraphicsScene/QGraphicsView "фильтр" item'ов
Отправлено: Alucard от Август 31, 2012, 23:16
Есть сцена (QGraphicsScene) и две вьюхи (QGraphicsView).
Есть ли возможность на одной из вьюх отображать лишь часть существующих элементов?
Например, одна вьюха - предпросмотр с элементами которые не нужно печатать, на второй соответственно только "печатаемые" элементы которые можно отправить на печать с пом. QGraphicsView::render().

Если невозможно, хотелось бы услышать предложения по реализации.
Спасибо.





Название: Re: QGraphicsScene/QGraphicsView "фильтр" item'ов
Отправлено: GreatSnake от Сентябрь 01, 2012, 12:41
Можно выставить тем элементам, которые не нужно отрисовывать флаг QGraphicsItem::ItemHasNoContents.
Но дело в том, что смена флага приводит к перерисовке сцены. Чтобы этого избежать нужно "заморозить" основные вью через
Код
C++ (Qt)
gv->viewport()->setUpdatesEnabled( false );
 


Название: Re: QGraphicsScene/QGraphicsView "фильтр" item'ов
Отправлено: Alucard от Сентябрь 01, 2012, 23:17
Установка этого флага приведет к тому, что на обоих вьюхах не будут отображаться эти элементы. Мне же необходимо, чтобы не отображались только на одной.


Название: Re: QGraphicsScene/QGraphicsView "фильтр" item'ов
Отправлено: GreatSnake от Сентябрь 02, 2012, 12:49
А что разве непонятно, что после отрисовки этот флаг сбрасывать нужно ???


Название: Re: QGraphicsScene/QGraphicsView "фильтр" item'ов
Отправлено: Alucard от Сентябрь 02, 2012, 22:25
Не очень нравится подобный вариант, но все равно, спасибо.