Название: Прозрачность окна. Отправлено: kxk от Сентябрь 12, 2011, 09:00 Необходимо сделать прозрачность окна но при этом чтобы label который находится на этом окне с gif анимацией оставался не прозрачным. Помогите пожалуйста.
Название: Re: Прозрачность окна. Отправлено: Fess от Сентябрь 12, 2011, 10:44 Насколько я помню, прозрачность применяется ко всему toplevel окну. Настройка прозрачности отдельных виджетов не поддерживается.
А какая задача-то? Может есть другой путь решения проблемы? Название: Re: Прозрачность окна. Отправлено: Nimbus от Сентябрь 12, 2011, 10:47 http://doc.qt.nokia.com/latest/qwidget.html#setMask
Только там либо полностью прозрачно, либо нет Название: Re: Прозрачность окна. Отправлено: Fregloin от Сентябрь 12, 2011, 14:14 ну если это win vista,7 то можно использовать glass эффект, правда как это прикрутить в qt я не в курсе, в остальных случаях это практически нереализуемо. Разве что рисовать в bitmap все, а label накладывать и потом отображать в окне (хотя как по мне это дикий гемморой и тормоза)
Название: Re: Прозрачность окна. Отправлено: Drafter от Сентябрь 12, 2011, 16:46 Как-то так...
Код
Название: Re: Прозрачность окна. Отправлено: Fess от Сентябрь 12, 2011, 17:37 Можно реализовать свой класс окна и переопределить в нем метод отрисовки в котором в качестве фона выводить изображение с альфа каналом нужной прозрачности. На все это уже поместить лейбл с гифкой.
Название: Re: Прозрачность окна. Отправлено: Drafter от Сентябрь 12, 2011, 23:46 Цитировать Можно реализовать свой класс окна и переопределить в нем метод отрисовки в котором в качестве фона выводить изображение с альфа каналом нужной прозрачности. Любой виджет и так (неявно) - изображение. Поэтому достаточно в paintEvent привязать к нему QPainter'а и закрасить в (полу)прозрачный цвет. Код
При этом, если виджет выступает в роли главного окна приложения, надо включить ему атрибут setAttribute(Qt::WA_TranslucentBackground, true), и убрать системную рамку setWindowFlags(Qt::FramelessWindowHint). Название: Re: Прозрачность окна. Отправлено: kxk от Сентябрь 13, 2011, 06:26 Большое всем спасибо вот решение
Код: ui->setupUi(this); |