有没有办法让PyGTK小部件部分透明,以便通过它可以看到它背后的小部件?具体来说,我试图在标签上做这个,用于排版效果;我不想改变颜色,因为它可能看起来不是所有主题。
答案 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]))
为了使其完全正确,您还可以收听“样式设置”信号。