在 PyGTK 应用程序中具有特定小部件透明度的最佳方法是什么?我不想使用主题,因为每个小部件的透明度都会通过动画而改变。
我唯一能找到的是使用 cairo 绘制带有 Alpha 的小部件,但我不知道如何做到这一点。也许还有更好的方法来做到这一点?
谢谢!
假设您的程序在组合管理器下运行,您可以通过操作小部件的 X 窗口来获得每个小部件的透明度。看看gtk.gdk.Window.set_opacity()。
注意,它不是gtk.Window
;您可以通过获取它的window
属性 ( buttonWidget.window
) 来获取此对象,但仅在实现小部件时以及仅在小部件确实处理事件时 - 例如 gtk.Label 没有自己的 X 窗口。
如果您在没有合成管理器的情况下也需要工作,那么您自己绘制小部件是唯一的选择——但您不一定必须使用 cairo;在裸露的 X 窗口上逐个像素地绘制也可以。