Wohlstand
@Wohlstand
Инженер-программист С++

Как сделать возможность выделять и хватать невидимые (полностью прозрачные) объекты в QGraphicsScene?

Есть приложение созданное на базе Qt 5.3.0
Есть QGraphicsScene, на которой размещены объекты QGraphicsPixmapItem, среди которых есть невидимые, т.е. не скрытые, а имеющие полностью прозрачную картинку. Задача стоит в том, чтобы сделать возможным выделить или схватить такие объекты мышью. Поскольку QGraphicsScene выделяет объекты исключительно по форме (по видимым пикселям), то где мне надо установить флаг, чтобы я мог выделить объект по его размерному прямоугольнику, даже если он имеет полностью прозрачную картинку?

Есть идея предварительно при инициализации проверять каждый пиксель на прозрачность и уменьшать уровень прозрачности на микрон, чтобы сделать объект хоть капельку видимым для мышки и выделительной зоны, но это может замедлить процесс инициализации, особенно если в сумме уникальных изображений порядка 1000-2000. Предполагаю, что должен быть флаг у QGraphicsView или у QGraphicsScene, чтобы я смог хватать мышкой такие невидимые объекты.
  • Вопрос задан
  • 2755 просмотров
Решения вопроса 1
Wohlstand
@Wohlstand Автор вопроса
Инженер-программист С++
Фуф, сам нашёл решение:
дело в самих QGraphicsPixmapItem. Всё элементарно, просто установить режим формы на "BoundingRectShape"
Item->setShapeMode(QGraphicsPixmapItem::BoundingRectShape);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы