Прозрачность виджетов в PyGTK? - PullRequest
0 голосов
/ 31 октября 2009

Как лучше всего обеспечить прозрачность определенных виджетов в приложении PyGTK? Я не хочу использовать темы, потому что прозрачность каждого из виджетов будет меняться с помощью анимации.

Единственное, что я могу найти, - это использовать Каир для рисования виджетов с Альфой, но я не могу понять, как это сделать. Возможно, есть и лучший способ сделать это?

Спасибо!

1 Ответ

3 голосов
/ 31 октября 2009

Предполагая, что ваша программа работает под менеджером композиции, вы можете получить прозрачность для каждого виджета, манипулируя X-окном виджета. Посмотрите на gtk.gdk.Window.set_opacity () .

Обратите внимание, это не gtk.Window; вы можете получить этот объект, получив его свойство window (buttonWidget.window), но только когда виджет реализован и только когда виджет обрабатывает события - например, gtk.Label не имеет своего собственного окна X.

Если вам нужно работать также, когда у вас нет диспетчера композиций, рисование ваших виджетов самостоятельно - это единственный вариант, но вам не обязательно использовать cairo; рисование пиксель за пикселем в голом окне X также будет работать.

...