我正在移植一个 Python2 脚本,该脚本使用 Pango 将文本绘制到开罗表面。pangocairo
使用带有包的旧 PyGtk API 可以正常工作。我的系统(Debian Jesse)没有用于 PyGtk 的 Python3 包,而是使用带有 PyGObject API 的较新的 Gtk+ 库。
我想创建一个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 一起使用的好的文档?