Возникла задача отобразить сцену в нескольких представлениях, причем в одном из представлений часть элементов должны быть скрыты. Каким образом это сделать проще всего?
Re: Видимость QGraphicsItem в разных представлениях
Ну по всей видимости нужно иметь один QGraphicsView, а к нему не одну сцену (QGraphicsScene), а несколько, в каждую из которых добавить свой набор элементов.
Патриот здравого смысла
Re[2]: Видимость QGraphicsItem в разных представлениях
Здравствуйте, DiPaolo, Вы писали:
DP>Ну по всей видимости нужно иметь один QGraphicsView, а к нему не одну сцену (QGraphicsScene), а несколько, в каждую из которых добавить свой набор элементов.
А не наоборот? С QGraphicsView может быть связана только одна сцена, а одна сцена может показывать на нескольких QGraphicsView.
Re[3]: Видимость QGraphicsItem в разных представлениях
DP>>Ну по всей видимости нужно иметь один QGraphicsView, а к нему не одну сцену (QGraphicsScene), а несколько, в каждую из которых добавить свой набор элементов. A>А не наоборот? С QGraphicsView может быть связана только одна сцена, а одна сцена может показывать на нескольких QGraphicsView.
A>Всем доброго дня!
A>Возникла задача отобразить сцену в нескольких представлениях, причем в одном из представлений часть элементов должны быть скрыты. Каким образом это сделать проще всего?
Где вы планируете хранить состояние видимости объектов?
Re[2]: Видимость QGraphicsItem в разных представлениях
Здравствуйте, SaZ, Вы писали:
SaZ>Где вы планируете хранить состояние видимости объектов?
Задача такая: есть основной вид и вид "лупа", во "лупе" часть менее важных объектов показывать не требуется. На ум приходит сделать наследника от QGraphicsView и в нем указать тип вида — основной или "лупа". А что дальше? setVisible(false) скрывает элемент во всех видах. Может быть есть общепринятое решение как обойти это ограничение Qt))
Re[3]: Видимость QGraphicsItem в разных представлениях
A>Задача такая: есть основной вид и вид "лупа", во "лупе" часть менее важных объектов показывать не требуется. На ум приходит сделать наследника от QGraphicsView и в нем указать тип вида — основной или "лупа". А что дальше? setVisible(false) скрывает элемент во всех видах. Может быть есть общепринятое решение как обойти это ограничение Qt))
Ну как вариант на скорую руку – выставлять visibility, void QGraphicsItem::setVisible(bool visible) (https://doc.qt.io/qt-6/qgraphicsitem.html#setVisible). Конечно, если элементовсильно много, то может тормозить. Тогда ИМХО стоит рассмотреть мой вариант, который предлагал выше.
Патриот здравого смысла
Re[3]: Видимость QGraphicsItem в разных представлениях
Здравствуйте, ajanov, Вы писали:
A>Здравствуйте, SaZ, Вы писали:
SaZ>>Где вы планируете хранить состояние видимости объектов? A>Задача такая: есть основной вид и вид "лупа", во "лупе" часть менее важных объектов показывать не требуется. На ум приходит сделать наследника от QGraphicsView и в нем указать тип вида — основной или "лупа". А что дальше? setVisible(false) скрывает элемент во всех видах. Может быть есть общепринятое решение как обойти это ограничение Qt))
Ещё раз: где вы планируете хранить (и изменять) состояние видимости объектов? В том числе где вы храните и выставляете "важность"?
Когда вы сможете ответить на этот вопрос — вы сами себе сможете дать ответ на исходную задачу. Или изобретать свою въюху, что слишком трудоёмко или просто не запариваться и сделать 2 сцены, что куда проще через паттерн builder.