在PyGTK标签上设置不透明度

时间:2010-05-19 20:32:47

标签: python gtk transparency pygtk opacity

有没有办法让PyGTK小部件部分透明,以便通过它可以看到它背后的小部件?具体来说,我试图在标签上做这个,用于排版效果;我不想改变颜色,因为它可能看起来不是所有主题。

1 个答案:

答案 0 :(得分:2)

不,不可能。如果窗口管理器支持合成,则可以使整个窗口部分透明。但不是单个窗口小部件。

我猜你想要的东西可以通过“混合”颜色来实现:

def blend (color1, color2, weight = 0.5):
    return gtk.gdk.Color (
        color1.red_float   * weight + color2.red_float   * (1 - weight),
        color1.green_float * weight + color2.green_float * (1 - weight),
        color1.blue_float  * weight + color2.blue_float  * (1 - weight))

for state in gtk.StateType.__enum_values__:
    label.modify_fg (state, blend (label.style.fg[state], label.style.bg[state]))

为了使其完全正确,您还可以收听“样式设置”信号。