crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Стереть фрагмент 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  


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

Быстрый ответОтветить в данную темуНачать новую тему
Теги


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 14:19