Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QPixmap
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
flankerr
Как сделать прозроачный QPixmap ?

Предположим есть у меня QPixmap в него рисуються некие графики. Есть другой QPixmap туда рисуется фон.
задача наложить первы QPixmap на второй, так чтобы у первого пиксмепа в качетсве фона был второй.
Пиксмэпки рисуються в разное время и на момент наложеия есть именно две пиксмэпки.
ViGOur
Это пойдет?
Transparent Backgrounds in Qt 4.1
flankerr
Цитата(ViGOur @ 3.7.2008, 17:44) *


Это конечно интересно но меня интересует не виджет, а пиксмэп.
sploid
а ты у первой картинке в самом начале сделай цвет прозрачный, потом на ней нарисуй графики.

Когда графики будешь выводить, то в начале рисуешь вторую картинку ( где фон ), а потом первую ( где все графики без прозрачности а сам фон прозрачный ).

Вроде должно сработать.
flankerr
О! Правельно рассуждаешь. Именно это и надо.

ворпос КАК сделать прозрачный фон у первой пиксмыпки ??????
Т.е. чтобы при наложение двух пиксмэпок фоном у первой получался второй. И мне НЕ надо было перирисовывать первую пиксмэпку если я изменил фоновую пиксмэпку
sploid
void QPixmap::fill ( const QColor & color = Qt::white )

а цвет используй

QColor::QColor ( int r, int g, int b, int a = 255 )

последний параметр это прозрачность.
flankerr
Цитата(sploid @ 4.7.2008, 15:05) *
void QPixmap::fill ( const QColor & color = Qt::white )
а цвет используй
QColor::QColor ( int r, int g, int b, int a = 255 )
последний параметр это прозрачность.


QPixmap img;
img.fill(QColor(0,0,0,255));
Правельно тебя понял ??? Если так тогда это НЕ работает !

получилось сделать через маску
QPixmap img;
QPainter painter(&img)
painter.end();
img.setMask(img.createHeuristicMask());
sploid
последний параметр должен быть 0, а не 255.
QPixmap img;
img.fill(QColor(0,0,0,0));
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.