diff options
author | Martin Abente Lahaye <tch@sugarlabs.org> | 2013-01-15 20:44:49 (GMT) |
---|---|---|
committer | Martin Abente Lahaye <tch@sugarlabs.org> | 2013-01-15 20:44:49 (GMT) |
commit | 541bb620741e564366187f9bbc07d30f8390d583 (patch) | |
tree | 0ebd7f72d52ca8e9b7c6511d671854a214cce09a | |
parent | 01a7e3c2e3f2982ede28342ea3ebc040ecc4e790 (diff) |
gtk DrawingArea with images
-rwxr-xr-x | 011-gtk-drawingarea/example.py | 49 | ||||
-rw-r--r-- | 011-gtk-drawingarea/images/olpc.png | bin | 0 -> 38654 bytes | |||
-rw-r--r-- | 011-gtk-drawingarea/images/tux.png | bin | 0 -> 6156 bytes |
3 files changed, 49 insertions, 0 deletions
diff --git a/011-gtk-drawingarea/example.py b/011-gtk-drawingarea/example.py new file mode 100755 index 0000000..34b52b9 --- /dev/null +++ b/011-gtk-drawingarea/example.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +import gtk +import gobject + + +class MyApp(): + + def __init__(self): + window = gtk.Window() + + drawing_area = gtk.DrawingArea() + drawing_area.set_size_request(512, 512) + + self.pixbuf = gtk.gdk.pixbuf_new_from_file('images/tux.png') + + window.connect('destroy', self.destroy) + drawing_area.connect('configure_event', self.__configure_cb) + drawing_area.connect('expose-event', self.__expose_cb) + + window.add(drawing_area) + + window.show() + drawing_area.show() + + def destroy(self, window, data=None): + gtk.main_quit() + + def __configure_cb(self, drawing_area, data=None): + x, y, width, height = drawing_area.get_allocation() + + canvas = drawing_area.window + self.pixmap = gtk.gdk.Pixmap(canvas, width, height) + + self.pixmap.draw_pixbuf(None, self.pixbuf, 0, 0, 0, 0, -1, -1, + gtk.gdk.RGB_DITHER_NONE, 0, 0) + return True + + def __expose_cb(self, drawing_area, data=None): + x, y, width, height = data.area + context = drawing_area.get_style().fg_gc[gtk.STATE_NORMAL] + + canvas = drawing_area.window + canvas.draw_drawable(context, self.pixmap, x, y, x, y, width, height) + + return False + +if __name__ == "__main__": + my_app = MyApp() + gtk.main() diff --git a/011-gtk-drawingarea/images/olpc.png b/011-gtk-drawingarea/images/olpc.png Binary files differnew file mode 100644 index 0000000..720ed41 --- /dev/null +++ b/011-gtk-drawingarea/images/olpc.png diff --git a/011-gtk-drawingarea/images/tux.png b/011-gtk-drawingarea/images/tux.png Binary files differnew file mode 100644 index 0000000..ee1f557 --- /dev/null +++ b/011-gtk-drawingarea/images/tux.png |