Cairo example works with Python 2.7 but does not work in Python 3

≡放荡痞女 提交于 2019-12-10 17:18:24

问题


The simplest example. We create a window by means of Gtk, we add there area for drawing of Gtk.DrawingArea and on it we draw the text by means of Cairo.

Example:

#!/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()

At me everything perfectly works at Python 2.7, but only it is necessary to change Python for Python3 and the text isn't drawn any more. In what there can be a problem?


回答1:


Had the same problem... turns out you'll get no complaints if you're missing a few packages.

try apt-get install python3-gi-cairo and give it another try. Worked for me (including your code).



来源:https://stackoverflow.com/questions/13372909/cairo-example-works-with-python-2-7-but-does-not-work-in-python-3

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!