2012-11-14 195 views
4

最简单的示例。我们通过Gtk创建一个窗口,我们在那里添加绘制Gtk.DrawingArea的区域,并且在其上我们通过Cairo绘制文本。Cairo示例适用于Python 2.7,但不适用于Python 3

例子:

#!/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和文本不绘制了。 可能会有什么问题?

+0

在Ubuntu 12.10上适用于Python 3.2.3。你使用哪种分布? –

+0

我使用Ubuntu 12.04。关于ubuntu 12.10有多少我知道默认情况下使用python 3?在Ubuntu 12.04中使用python 2.7。可以给我任何建立的软件包不够吗? – Wolfgang

回答

3

有同样的问题......如果你缺少一些软件包,你将不会有任何抱怨。

尝试apt-get安装python3-gi-cairo并再次尝试。为我工作(包括你的代码)。

+0

是否有一个基于RPM的存储库的python3-gi-cairo等价物? –

相关问题