LINUX.ORG.RU

Частично прозрачный фон окна

 


0

3

Можно ли в Qt создать форму с альфа-каналом, который будет корректно обработан копозитором, в результате чего можно будет сделать некоторые области основного окна «чуть более прозрачными, чем прочие»?

Знаю, что есть color key transparency и можно задать «прозрачность» всего окна, но насчет индивидуальных областей ничего не нашел.

Интересует не Qt-шный композитинг виджетов, в котором можно все, а именно «видеть содержимое под главным окном».

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

wolph ★★
()
Ответ на: комментарий от RazrFalcon

Вопрос: а будет работать в каком-нибудь опенбоксе, не поддерживающем прозрачность?

Если я правильно понял (хотя особо и не вникал), то когда приложения работают с xlib (коньки всякие), им плевать, а когда с композитным менеджером — тут случается эта беда.

Как это в кутях реализовано?

evilface ★★
()

Можно ли в Qt создать форму с альфа-каналом, который будет корректно обработан копозитором, в результате чего можно будет сделать некоторые области основного окна «чуть более прозрачными, чем прочие»?

Да, можно, я такие кутэшные приложения видел. Например, fotowall внемён четвёртых кутей ещё.

ChALkeR ★★★★★
()
Ответ на: комментарий от kawaii_neko

<<Потому что GTK этого точно не умеет

ты сам сказал что это ВОЗМОЖНОСТИ КОМПОЗИТНОГО МЕНЕДЖЕРА

так почему ГТК не может пробрасывать теже функции что и кутэ,которые вообще не входят и не имеют отношения к этим либам?????

...да начиная с gtk2.4 гтк формы могут быть прозрачными и имеют альфаканалы на каждый элеимент(кнопка/едитбоксы тдтп)

и да-даже гтк 1.0 имеет возможеость «установки PNG» в качестве фона(за счет чего и рисуется интерфейс всяких музыкальных плееров типо тогоже xmpp)...привет из 2000 дурачок

anonymous
()
Ответ на: комментарий от evilface

Вопрос: а будет работать в каком-нибудь опенбоксе, не поддерживающем прозрачность?

также как и в винде-прозрачности не будет

твой файрфокс и хром имеют прозрачный загловок в линуксе-и ничего работают както и без композитенга...боже что за отсталые боты на лоре,такие вопросы были во время выхода qt4 и windowsvista...но сейчас уже 2016....совсем мозгов нет

КОНЕЧНОЖЕ ДЕВЕЛОПЕРЫ НЕ ПРОДУМАЛИ_А ЧТОЖЕ БУДЕТ ЕСЛИ КОМПОЗИТИНГ ОТКЛЮЧИТЬ ЧТОЖЕ БУДЕТ С ПРОЗРАЧНОСТЬ,ОЙОЙОЙОЙОЙО КАКЖЕ ОНИ НЕ ПОДУМАЛИ СРАЗУ НУУУУУУУУУУУ ТУПЫЫЫЫЫЫЫЫЫЫЕ

anonymous
()

А если сделать вот такое:

Atom net_wm_blur_region = XInternAtom(QX11Info::display(), "_KDE_NET_WM_BLUR_BEHIND_REGION", False);
XChangeProperty(QX11Info::display(), this->winId(), net_wm_blur_region, XA_CARDINAL, 32, PropModeReplace, 0, 0);

То в KWin будет ещё и размытие (а без KWin ничего плохого не будет, обычная прозрачность, если есть композитинг, или ничего).

KivApple ★★★★★
()
Ответ на: комментарий от evilface

Там немного не так. Коньки просто копируют кусок фона рабочего стола при запуске и рисуют его на своём окне, а затем уже свою информацию. Также там есть режим, когда они рисуют непосредственно на окне рабочего стола (с некоторыми оболочками может глючить), вместо создания своего окна (да, иксы позволяют рисовать на чужих окнах). И, наконец, вроде как там можно включить использования композитинга.

Так вот - прозрачность без композитинга стоится на костылях (рисование на чужих окнах, копирование и запоминание куска фона рабочего стола) и весьма ограниченна (нельзя, например, чтобы через твоё окно было видно другое окно, потому что перекрытая область банально не рисуется).

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от KivApple

Коньки просто копируют кусок фона рабочего стола при запуске и рисуют его на своём окне, а затем уже свою информацию

Блин, а ведь я про это когда-то читал, но уже давно забыл. Поэтому же у меня когда обоина меняется, под коньками это происходит далеко не сразу, лишь когда они обновятся.

Спасибо, теперь уже не забуду.

evilface ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.