working using expose-event
This commit is contained in:
parent
f50d058304
commit
7fa582baa0
20
example.py
20
example.py
@ -4,21 +4,24 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import gtk
|
import gtk
|
||||||
import pango
|
import pango
|
||||||
|
import cairo
|
||||||
import pangocairo
|
import pangocairo
|
||||||
|
|
||||||
FONT = "Sans Bold 27"
|
|
||||||
|
|
||||||
class MyWidget(gtk.DrawingArea):
|
class MyWidget(gtk.DrawingArea):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
gtk.DrawingArea.__init__(self)
|
gtk.DrawingArea.__init__(self)
|
||||||
self.set_size_request(200, 200)
|
self.set_size_request(200, 200)
|
||||||
|
self.connect('expose-event', self.expose)
|
||||||
|
|
||||||
def do_draw_cb(self, widget, cr):
|
def expose(self, widget, event):
|
||||||
layout = pangocairo.create_layout(cr)
|
cr = widget.window.cairo_create()
|
||||||
layout.set_text("Text", -1)
|
cr.select_font_face("Courier",
|
||||||
desc = pango.font_description_from_string(FONT)
|
cairo.FONT_SLANT_NORMAL, cairo.FONT_WEIGHT_NORMAL)
|
||||||
layout.set_font_description(desc)
|
cr.set_font_size(20)
|
||||||
pangocairo.show_layout(cr, layout)
|
cr.set_source_rgb(1.0, 0.3, 0.0)
|
||||||
|
cr.move_to(0, 15)
|
||||||
|
cr.text_path("Hello")
|
||||||
|
cr.stroke()
|
||||||
|
|
||||||
def destroy(window):
|
def destroy(window):
|
||||||
gtk.main_quit()
|
gtk.main_quit()
|
||||||
@ -28,7 +31,6 @@ def main():
|
|||||||
window.set_title("Custom pygtk widget hello world")
|
window.set_title("Custom pygtk widget hello world")
|
||||||
widget = MyWidget()
|
widget = MyWidget()
|
||||||
window.add(widget)
|
window.add(widget)
|
||||||
widget.connect('draw', widget.do_draw_cb)
|
|
||||||
window.connect_after('destroy', destroy)
|
window.connect_after('destroy', destroy)
|
||||||
window.show_all()
|
window.show_all()
|
||||||
gtk.main()
|
gtk.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user