- UID
 - 2546
 - 积分
 - 161
 - 帖子
 - 30
 - 主题
 - 5
 - 论坛币
 - 888 
 - 威望
 - 0 
 - EP值
 - 138 
 - MP值
 - 0 
 - 阅读权限
 - 50
 - 注册时间
 - 2015-5-9
 - 在线时间
 - 52 小时
 - 最后登录
 - 2025-10-25
  
 
 
 
  
 | 
 本帖最后由 Seekladoom 于 2022-3-26 22:05 编辑  
 
来源链接: 
https://stackoverflow.com/questi ... -with-pygobject-api 
 
以下内容为上述链接中原文的机翻: 
 
我正在移植一个 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 一起使用的好的文档? 
 |   
 
  
 |