Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: mal от Июль 19, 2007, 10:18



Название: Qt 4.3.0 Прозрачность слоев в QGraphicsVeiw
Отправлено: mal от Июль 19, 2007, 10:18
имеем на сцене два слоя:
первый - изображение (QGraphicsPixmapItem),
второй - аналогичное QGraphicsPixmapItem, у которого Pixmap залит одним цветом с заданным альфа-каналом.
Таким образом сквозь второй слой "насколькото-прозрачен" и мы видим первый слой сквозь цветовую маску.

Вопрос: можно ли сверху положить третий слой (пусть QGraphicsRectItem), таким образом, чтоб сочетание третьего и второго слоя суммарно дало полную прозрачность, и мы бы на месте наложения третьего слоя видели бы кусок первого слоя таким какой он есть?
Т.е. я пытаюсь реализовать этакую лупу - мышка двигается и под ней в прямоугольнике юзер смотрит на исходное изображение.

ЗЫ: НЕ (!) предлагать сделать кусок второго слоя в данном месте полностью прозрачным. По времязатратам такой способ  исключен! (пролить rect на пиксмапе  с прозрачной кистью - положить пиксмап на слой 2 - положить слой 2 на сцену).


Название: Qt 4.3.0 Прозрачность слоев в QGraphicsVeiw
Отправлено: Racheengel от Июль 19, 2007, 16:49
тут однозначно надо делать дыру в слое 2, имхо.
сначала делаешь композитный слой, который с дыркой в нужном месте,
а потом назначаешь его итему.