PyGTK中的小部件透明度?
在PyGTK应用程序中,怎样才能让特定的控件变得透明呢?我不想用主题,因为每个控件的透明度会随着动画而变化。
我找到的唯一方法是使用cairo来绘制带有透明度的控件,但我不知道该怎么做。有没有其他更好的方法呢?
谢谢!
1 个回答
3
假设你的程序是在一个合成管理器下运行的,你可以通过调整小部件的X窗口来实现每个小部件的透明效果。可以看看这个链接:gtk.gdk.Window.set_opacity()。
注意,这里说的不是gtk.Window
;你可以通过获取它的window
属性(比如buttonWidget.window
)来获取这个对象,但前提是小部件已经被创建并且能够处理事件——比如说,gtk.Label就没有自己的X窗口。
如果你需要在没有合成管理器的情况下工作,自己绘制小部件是唯一的选择——不过你不一定要使用cairo;在裸X窗口上逐个像素绘制也是可以的。