Непрозрачность виджета PyGTK

Есть ли способ установить прозрачность виджета в PyGTK?
Я знаю, что для окон есть функция:

gtk.Window.set_opacity(0.85)

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

Заранее спасибо за помощь.


person Donald Harvey    schedule 24.02.2009    source источник
comment
что вы хотите видеть через виджет, который хотите сделать полупрозрачным? рабочий стол/другие окна? или другой виджет в вашем приложении?   -  person anthony    schedule 25.02.2009
comment
По сути, я хочу, чтобы рабочий стол/другие окна были видны. В настоящее время у меня есть собственный обработчик событий expose, чтобы сделать фон окна полупрозрачным (я рисую это с помощью Cairo), который работает очень хорошо, но я не знаю, есть ли способ сделать что-то подобное с обычными виджетами GTK+.   -  person Donald Harvey    schedule 25.02.2009


Ответы (2)


Из справочника по pygtk:

Для настройки попиксельного альфа-канала см. gtk.gdk.Screen.get_rgba_colormap(). Чтобы сделать окна не верхнего уровня полупрозрачными, см. gtk.gdk.Window.set_composited().

person Alexander Lebedev    schedule 24.02.2009
comment
Это по-прежнему будет зависеть от того, является ли он виджетом с собственным GdkWindow. - person Ali Afshar; 25.02.2009
comment
Нет, если вы хотите установить попиксельный альфа-канал. Однако правильно реализовать это будет очень сложно. - person Alexander Lebedev; 25.02.2009
comment
Я добавлю к этому, что альфа-каналы в окнах gtk не работают в системах Windows... только в Unix. - person CodeMouse92; 04.12.2011

Возможно, также стоит заглянуть в pygtkglext, чтобы найти более интересные виджеты.

person tmatth    schedule 24.02.2009