【发布时间】:2011-02-21 14:06:10
【问题描述】:
有没有办法使 PyGTK 小部件部分透明,以便可以通过它看到它后面的小部件?具体来说,我试图在标签上这样做,以获得印刷效果;我不想改变颜色,因为它可能看起来并不适合所有主题。
【问题讨论】:
标签: python gtk transparency pygtk opacity
有没有办法使 PyGTK 小部件部分透明,以便可以通过它看到它后面的小部件?具体来说,我试图在标签上这样做,以获得印刷效果;我不想改变颜色,因为它可能看起来并不适合所有主题。
【问题讨论】:
标签: python gtk transparency pygtk opacity
不,不可能。如果窗口管理器支持合成,则可以使整个窗口部分透明,但不支持单个小部件。
我猜你想要的可以通过“混合”颜色以不同的方式实现:
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]))
为了使其完全正确,您还可以收听“样式设置”信号。
【讨论】: