Название: Прозрачность QPixmap и QSplashScreen Отправлено: Николай Кузнецов от Августа 05, 2011, 00:25 Есть PNG с прозрачным фоном. Делаю:
Код: QPixmap pixmap("logo.png"); сплэш не прозрачный( что делать? Вроде нужно альфа канал както установить на pixmap'e верно? Хотя картинка итак вроде прозрачная... Вообщем подскажите кто знает пожалуйста. Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: LisandreL от Августа 05, 2011, 01:21 Думаю переменная прозрачность не поддерживается.
splash.setMask(pixmap.mask()); - но только видимый/невидимый, полупрозрачности не будет. Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: Николай Кузнецов от Августа 05, 2011, 14:57 Очень странно, как это так, если у меня уже есть картинка с прозрачным фоном, почему она не может быть отображена как положено?
Например в программе AIMP при загрузке появляется круглый логотип программы и он естественно имеет прозрачный фон. Понятно что AIMP не на Qt написан, но результат нужен именно такой... Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: LisandreL от Августа 05, 2011, 15:39 Потому что окна не умеют быть перемено прозрачными (ну по крайней мере не во всех DE).
По аимпу ничего не знаю (пользуюсь фубаром), но рискну предположить что 1) либо там одинаковая полупрозрачность по всему логотипу 2) либо он реально непрозрачный, а просто считывает нужную область экрана, использует эту картинку как подложку и рисуется поверх (но могу и ошибаться). Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: Николай Кузнецов от Августа 05, 2011, 15:47 Ну ладно. Придется использовать прямоугольный сплэш(
А Вам все равно спасибо за ответы) :) Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: GreatSnake от Августа 05, 2011, 17:27 Потому что окна не умеют быть перемено прозрачными (ну по крайней мере не во всех DE). Что подразумевается под "переменная прозрачность"? Альфа-канал? Дык ТС вроде про него ничего не говорил.Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: _OLEGator_ от Августа 05, 2011, 17:48 Во вложении вариант с любой прозрачностью в любом месте для винды
Ключевым моментов является атрибут Qt::WA_TranslucentBackground Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: LisandreL от Августа 05, 2011, 18:09 Вынужден признать, что наврал:
Код
P.S. _OLEGator_ опередил. Вчера с этим (Qt::WA_TranslucentBackground) флагом экспериментировал, но QSplashScreen он у меня почему-то делал полностью невидимым. Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: Николай Кузнецов от Августа 06, 2011, 12:03 Всем спасибо за ответы. Это уже очень близко к поставленной задаче, но в идеале нужен рабочий сплэш с прозрачностью в тех местах где прозрачна картинка.
Название: Re: Прозрачность QPixmap и QSplashScreen Отправлено: LisandreL от Августа 06, 2011, 12:06 Оно такое и есть - смотрите на мой скриншот. Видите - код через кубики просвечивает, где есть прозрачность.
|