6

我似乎无法使用 gintrospection 让开罗地区在其中工作。

例如

from gi.repository import cairo

 reg = cairo.Region()

会给我

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError

并尝试从 Gdk.get_clip_region() 获取区域会给我

    return info.invoke(*args)
TypeError: Couldn't find conversion for foreign struct 'cairo.Region'

我错过了什么明显的东西?我找不到初始化库的方法,也无法想象您需要对看起来像简单结构的区域进行初始化。我不知道为什么 gdk 找不到 cairo 类型,也不知道我是否应该以某种方式显示它。

4

1 回答 1

6

显然,您需要使用常规的 cairo 绑定,即使您对其他所有内容都使用自省。

所以只是import cairo

(我不确定为什么gi.repository.cairo存在......)

当您拥有所有必要的库时,“找不到转换”错误将消失(例如,在 Ubuntu 上,您还需要该python-gi-cairo软件包python-cairo(或等效的 python3 软件包))。

于 2012-07-14T02:45:25.760 回答