Ещё раз про прозрачность виджетов |
Здравствуйте, гость ( Вход | Регистрация )
Ещё раз про прозрачность виджетов |
Gluck |
9.2.2010, 15:48
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 9.2.2010 Пользователь №: 1457 Спасибо сказали: 0 раз(а) Репутация: 0 |
Почитал я тут похожие темы, но ответа как-то не нашёл. Есть ActiveX виджет, к нему child'ом приделан обычный виджет (который рисуется поверх activeX'ного виджета). И очень хочется, чтобы обычный виджет был полупрозрачным (причем целиком. В соседней теме SABROG писал, что "надо разделить понятие полу-прозрачности и частичной полу-прозрачности. Первое не вопрос, второе гемор." Вот тут первая ситуация). Код, например такой:
Как бы такое можно было сделать? Причем, задача-максимум, чтобы можно было этот виджет нарисовать в Qt Designer'e и потом просто динамически подгрузить. ( Я пытался в нём определять styleSheet как "background-color: rgba(0, 255, 0, 30)", но результаты оказались очень странными). P.S.: Qt 4.6.0 |
|
|
Rocky |
18.2.2010, 21:40
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Я вот щас как-то добился эффекта полной прозрачности дочернего виджета так. Переопределил обработчик paintEvent в классе, производном от этого виджета. Изначально виджету ставился styleSheet с градиентной заливкой фона с прозрачностью. Когда в paintEvent стоял вызов Qpainter::eraseRect(...), тот фон, который задавал StyleSheet рисовался нормально. А когда я попробовал убрать вызов eraseRect, виджет вообще как-будто исчез. Т.е. я могу на нем рисовать, и это все видно. Но сам он полностью прозрачный. Правда ActiveX-виджетов я не использую.
|
|
|
Текстовая версия | Сейчас: 29.1.2025, 19:47 |