Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Стереть фрагмент QPixmap

Автор: Norrius 20.1.2012, 17:54

У меня несколько "слоев" - QPixmap'ов, которые обсчитываются отдельно и выводятся на окно в paintEvent. Как стереть (залить прозрачным) прямоугольный кусок pixmap, чтобы то что ниже было видно?
Я пробовал делать painter.fillRect(<...>, transparent), но это, как и предполагалось, ничего не делает. painter.eraseRect() не работает, только если установить painter.setBackgroundMode(OpaqueMode), однако, в этом случае весь pixmap заливает белым.

Автор: BRE 20.1.2012, 18:11

QPixmap::setMask

Автор: Norrius 20.1.2012, 18:23

К сожалению, это получается еще медленнее, чем pixmap.fill() и повторная перерисовка всех участков pixmap.

Автор: BRE 20.1.2012, 18:41

Попробуй с композитингом рисовать на QImage.


Автор: Norrius 20.1.2012, 19:01

Спасибо, посмотрю.

Автор: Norrius 31.1.2012, 21:46

Up. Так и не удалось придумать ничего работающего.

Автор: wiz29 1.2.2012, 8:10

установи рисовальщику QPainter::CompositionMode_Source и рисуй заливку QColor(0, 0, 0, 0) должно помочь.

Автор: Norrius 29.2.2012, 21:19

Как ни печально, я увидел это только сейчас (хотя уже давно разобрался с этим и, пожалуй, разобрался бы быстрее, если бы следил за форумом). Я идиот. Спасибо Вам.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)