![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
flankerr |
![]() ![]()
Сообщение
#1
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Как сделать прозроачный QPixmap ?
Предположим есть у меня QPixmap в него рисуються некие графики. Есть другой QPixmap туда рисуется фон. задача наложить первы QPixmap на второй, так чтобы у первого пиксмепа в качетсве фона был второй. Пиксмэпки рисуються в разное время и на момент наложеия есть именно две пиксмэпки. |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Это пойдет?
Transparent Backgrounds in Qt 4.1 |
|
|
flankerr |
![]()
Сообщение
#3
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
Это пойдет?Transparent Backgrounds in Qt 4.1 Это конечно интересно но меня интересует не виджет, а пиксмэп. Сообщение отредактировал flankerr - 3.7.2008, 16:49 |
|
|
sploid |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
а ты у первой картинке в самом начале сделай цвет прозрачный, потом на ней нарисуй графики.
Когда графики будешь выводить, то в начале рисуешь вторую картинку ( где фон ), а потом первую ( где все графики без прозрачности а сам фон прозрачный ). Вроде должно сработать. |
|
|
flankerr |
![]() ![]()
Сообщение
#5
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
О! Правельно рассуждаешь. Именно это и надо.
ворпос КАК сделать прозрачный фон у первой пиксмыпки ?????? Т.е. чтобы при наложение двух пиксмэпок фоном у первой получался второй. И мне НЕ надо было перирисовывать первую пиксмэпку если я изменил фоновую пиксмэпку Сообщение отредактировал flankerr - 4.7.2008, 10:51 |
|
|
sploid |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
void QPixmap::fill ( const QColor & color = Qt::white )
а цвет используй QColor::QColor ( int r, int g, int b, int a = 255 ) последний параметр это прозрачность. |
|
|
flankerr |
![]()
Сообщение
#7
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: ![]() ![]() ![]() |
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 |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
последний параметр должен быть 0, а не 255.
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 9:01 |