2009-10-30 61 views
0

在PyGTK應用程序中使特定小部件具有透明度的最佳方式是什麼?我不想使用主題,因爲每個小部件的透明度將通過動畫改變。PyGTK中的Widget透明度?

我唯一能找到的就是用cairo來繪製一個Alpha的小部件,但我無法弄清楚如何做到這一點。有沒有更好的方法來做到這一點?

謝謝!

回答

3

假設您的程序在組合管理器下運行,您可以通過操作窗口小部件的X窗口來獲得每個窗口小部件的透明度。看看gtk.gdk.Window.set_opacity()

注意,它不是gtk.Window;您可以通過獲取其window屬性(buttonWidget.window)來獲取此對象,但只有在實現了窗口小部件並且僅在窗口小部件處理事件時纔會獲得此對象 - gtk.Label沒有自己的X窗口。

如果您還需要在沒有組合管理器的情況下工作,那麼您自己繪製小部件是唯一的選擇 - 但您不一定非得使用cairo;在裸X窗口上逐個像素地繪製也將起作用。