4
我正在移植使用Pango將文本繪製到開羅表面的Python2腳本。使用舊的PyGtk API和pangocairo
包可以很好地工作。我的系統(Debian Jesse)沒有用於PyGtk的Python3包,而是使用了新的Gtk +庫和PyGObject API。使用PangoCairo與PyGObject API
我想創建一個pangocairo.CairoContext
對象,但它似乎在新API中缺失。 PangoCairo
程序包具有create_context()
函數,但它會生成不具有我需要的方法的PangoContext
對象。
到目前爲止,我有這樣的:
import cairo
from gi.repository import Pango
from gi.repository import PangoCairo
surf = cairo.ImageSurface(cairo.FORMAT_ARGB32, 8, 8)
ctx = cairo.Context(surf)
pctx = PangoCairo.create_context(ctx) # Creates a PangoContext
pctx.set_antialias(cairo.ANTIALIAS_SUBPIXEL) # This fails
老Python2代碼工作:
import cairo
import pango
import pangocairo
surf = cairo.ImageSurface(cairo.FORMAT_ARGB32, 8, 8)
ctx = cairo.Context(surf)
pctx = pangocairo.CairoContext(ctx)
pctx.set_antialias(cairo.ANTIALIAS_SUBPIXEL)
有沒有人有一個解決方案?是否有關於PangoCairo
應該如何與新API一起使用的良好文檔?
這不是您的解決方案工作原因。 「pctx = PangoCairo.create_context(ctx)」將以同樣的方式工作。您更改了設置抗鋸齒的代碼。 – beroal