OnScreen.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/python
  2. '''
  3. ZetCode PyCairo tutorial
  4. This code example draws a circle
  5. using the PyCairo library.
  6. Author: Jan Bodnar
  7. Website: zetcode.com
  8. Last edited: April 2016
  9. '''
  10. from gi.repository import Gtk
  11. import cairo
  12. import math
  13. class Example(Gtk.Window):
  14. def __init__(self):
  15. super(Example, self).__init__()
  16. self.init_ui()
  17. def init_ui(self):
  18. darea = Gtk.DrawingArea()
  19. darea.connect("draw", self.on_draw)
  20. self.add(darea)
  21. self.set_title("Fill & stroke")
  22. self.resize(230, 150)
  23. self.set_position(Gtk.WindowPosition.CENTER)
  24. self.connect("delete-event", Gtk.main_quit)
  25. self.show_all()
  26. def on_draw(self, wid, cr):
  27. cr.set_line_width(9)
  28. cr.set_source_rgb(0.7, 0.2, 0.0)
  29. w, h = self.get_size()
  30. cr.translate(w/2, h/2)
  31. cr.arc(0, 0, 50, 0, 2*math.pi)
  32. cr.stroke_preserve()
  33. cr.set_source_rgb(0.3, 0.4, 0.6)
  34. cr.fill()
  35. def main():
  36. app = Example()
  37. Gtk.main()
  38. if __name__ == "__main__":
  39. main()