私はカイロの表面にテキストを描画するためにPangoを使用するPython2スクリプトを移植しています。 pangocairo
パッケージの古いPyGtk APIを使ってうまく動作します。私のシステム(Debian Jesse)はPyGtk用のPython3パッケージを持っておらず、代わりにPyGObject APIと共に新しいGtk +ライブラリを使用しています。PyGObject APIでPangoCairoを使用
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でどのように使用されるべきかに関する良い文書はありますか?
"Pangoコンテキスト(現在のPango.Context)はPango.Layoutオブジェクトから取得されます。"これがソリューションが機能する理由ではありません。 "pctx = PangoCairo.create_context(ctx)"は同じように動作します。アンチエイリアスを設定するコードを変更しました。 – beroal