카이로 표면에 텍스트를 그리는 데 Pango를 사용하는 Python2 스크립트를 이식합니다. pangocairo
패키지가있는 이전 PyGtk API를 사용하면 문제없이 작동합니다. 내 시스템 (Debian Jesse)은 PyGtk 용 Python3 패키지를 가지고 있지 않으며 PyGObject API와 함께 새로운 Gtk + 라이브러리를 사용합니다.PyGObject API와 함께 PangoCairo 사용
pangocairo.CairoContext
개체를 만들고 싶지만 새 API에서 누락 된 것 같습니다. PangoCairo
패키지는 create_context()
기능을 가지고 있지만 필요한 방법이없는 PangoContext
개체를 생성합니다.
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)
이
사람이에 대한 해결책이 있습니까 : 작동
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 코드 :
지금까지 나는이 있나요? PangoCairo
을 새 API와 함께 사용해야하는 방법에 대한 좋은 문서가 있습니까?
"이제 Pango 컨텍스트 (현재 Pango.Context)는 Pango.Layout 개체에서 검색됩니다." 이것이 솔루션이 작동하는 이유는 아닙니다. "pctx = PangoCairo.create_context (ctx)"는 같은 방식으로 작동합니다. 앤티 앨리어싱을 설정하는 코드를 변경했습니다. – beroal