2012-11-14 99 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等價物? –

相關問題