最も単純な例。Gtkを使用してウィンドウを作成し、そこにGtk.DrawingAreaを描画するための領域を追加し、その上にCairoを使用してテキストを描画します。
例:
#!/usr/bin/env python
from gi.repository import Gtk
import cairo
class MyWindow (Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title='MyWindow')
darea = Gtk.DrawingArea()
darea.connect('draw', self.on_draw)
self.add(darea)
def on_draw(self, widget, ctx):
ctx.set_source_rgb(0, 0, 0)
ctx.select_font_face("Sans", cairo.FONT_SLANT_NORMAL,
cairo.FONT_WEIGHT_NORMAL)
ctx.set_font_size(20)
ctx.move_to(10, 20)
ctx.show_text("Text...")
win = MyWindow()
win.connect('delete-event', Gtk.main_quit)
win.show_all()
Gtk.main()
私の場合、すべてがPython 2.7で完全に機能しますが、PythonをPython3に変更するだけで、テキストは描画されなくなります。何に問題があるのでしょうか?