Установка непрозрачности на ярлыке PyGTK - PullRequest
0 голосов
/ 20 мая 2010

Есть ли способ сделать виджет PyGTK частично прозрачным, чтобы сквозь него можно было видеть виджеты за ним? В частности, я пытаюсь сделать это на этикетке, для типографского эффекта; Вместо этого я не хочу менять цвет, так как он может выглядеть не во всех темах.

1 Ответ

2 голосов
/ 20 мая 2010

Нет, не возможно.Можно сделать все окна частично прозрачными, если оконный менеджер поддерживает компоновку, но не отдельные виджеты.

Я думаю, что вы можете достичь по-разному, "смешивая" цвета:

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]))

Чтобы сделать его полностью правильным, вы также можете прослушать сигнал "style-set".

...