This example requires SimpleGladeApp.py, don't forget to download it.
#!/usr/bin/env python # -*- coding:UTF-8 -*- from SimpleGladeApp import SimpleGladeApp from math import pi from whrandom import * import time import gtk import cairo import cairo.gtk class Cairo1GladeApp(SimpleGladeApp): def new(self): self.width, self.heigth = self.drawingarea1.window.get_size() self.ctx = cairo.Context() self.rand = whrandom() self.elapsed = 150 self.on_timeout() def on_timeout(self): gtk.timeout_add(self.elapsed, self.on_timeout) self.drawingarea1.queue_draw() def on_expose(self, area, event): cairo.gtk.set_target_drawable(self.ctx, self.drawingarea1.window) top, left, width, height = event.area self.ctx.set_rgb_color(1,1,1) self.ctx.rectangle(top, left, width, height) self.ctx.fill() self.on_object_random() self.draw_text() def on_object_random(self, *args): i = 0 for i in range (1,101,1): x = self.rand.random()* self.width y = self.rand.random()* self.heigth radio = self.rand.random() * 20 red = self.rand.random() green= self.rand.random() blue = self.rand.random() self.ctx.set_rgb_color(red, green, blue) self.ctx.arc(x ,y, radio, 0, 360 * (pi/180) ) self.ctx.save() self.ctx.set_alpha(0.8) self.ctx.set_rgb_color(green, red, blue) self.ctx.fill() self.ctx.restore() self.ctx.stroke() def draw_text(self, *args): self.ctx.save() self.ctx.set_rgb_color(0,0,0) self.ctx.move_to(50,130) self.ctx.select_font('sant-serif') self.ctx.scale_font(20) self.ctx.show_text('HOLA MUNDO/GTK+ CAIRO') self.ctx.restore() app = Cairo1GladeApp('cairo1gladeapp.glade') app.run()