Как получить прозрачный фон в окне с помощью PyGTK и PyCairo?

Я очень старался создать окно без декораций и с прозрачным фоном с помощью PyGTK. Затем я бы нарисовал содержимое окна с помощью Cairo. Но я не могу заставить его работать.

Я пробовал много разных способов, все они потерпели неудачу, это один из них

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk, sys, cairo

win = None

def expose (widget, event):
    cr = widget.window.cairo_create()

    #Start drawing
    cr.set_operator(cairo.OPERATOR_CLEAR)
    cr.set_source_rgba(0.5,1.0,0.0,0.5)
    cr.rectangle(0, 0, 0.9, 0.8)
    cr.fill()

def main (argc):
    global win

    win = gtk.Window()

    win.set_decorated(False)

    win.connect('delete_event', gtk.main_quit)
    win.connect('expose-event', expose)

    win.set_app_paintable(True)

    win.show()

    gtk.main()

if __name__ == '__main__':
    sys.exit(main(sys.argv))

Итак, как это проще всего сделать?

6
задан paldepind 14 March 2011 в 08:50
поделиться