Стереть фрагмент QPixmap |
Здравствуйте, гость ( Вход | Регистрация )
Стереть фрагмент QPixmap |
Norrius |
20.1.2012, 17:54
Сообщение
#1
|
Студент Группа: Участник Сообщений: 26 Регистрация: 30.12.2011 Пользователь №: 3105 Спасибо сказали: 0 раз(а) Репутация: 0 |
У меня несколько "слоев" - QPixmap'ов, которые обсчитываются отдельно и выводятся на окно в paintEvent. Как стереть (залить прозрачным) прямоугольный кусок pixmap, чтобы то что ниже было видно?
Я пробовал делать painter.fillRect(<...>, transparent), но это, как и предполагалось, ничего не делает. painter.eraseRect() не работает, только если установить painter.setBackgroundMode(OpaqueMode), однако, в этом случае весь pixmap заливает белым. |
|
|
BRE |
20.1.2012, 18:11
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
QPixmap::setMask
|
|
|
Norrius |
20.1.2012, 18:23
Сообщение
#3
|
Студент Группа: Участник Сообщений: 26 Регистрация: 30.12.2011 Пользователь №: 3105 Спасибо сказали: 0 раз(а) Репутация: 0 |
К сожалению, это получается еще медленнее, чем pixmap.fill() и повторная перерисовка всех участков pixmap.
|
|
|
BRE |
20.1.2012, 18:41
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Попробуй с композитингом рисовать на QImage.
|
|
|
Norrius |
20.1.2012, 19:01
Сообщение
#5
|
Студент Группа: Участник Сообщений: 26 Регистрация: 30.12.2011 Пользователь №: 3105 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, посмотрю.
|
|
|
Norrius |
31.1.2012, 21:46
Сообщение
#6
|
Студент Группа: Участник Сообщений: 26 Регистрация: 30.12.2011 Пользователь №: 3105 Спасибо сказали: 0 раз(а) Репутация: 0 |
Up. Так и не удалось придумать ничего работающего.
|
|
|
wiz29 |
1.2.2012, 8:10
Сообщение
#7
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
установи рисовальщику QPainter::CompositionMode_Source и рисуй заливку QColor(0, 0, 0, 0) должно помочь.
|
|
|
Norrius |
29.2.2012, 21:19
Сообщение
#8
|
Студент Группа: Участник Сообщений: 26 Регистрация: 30.12.2011 Пользователь №: 3105 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как ни печально, я увидел это только сейчас (хотя уже давно разобрался с этим и, пожалуй, разобрался бы быстрее, если бы следил за форумом). Я идиот. Спасибо Вам.
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 14:19 |