使用gi.repository在python中使用Cairo Regions

时间:2011-05-26 04:19:14

标签: python-3.x introspection cairo gobject pycairo

我似乎无法让cairo地区在内部工作 使用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类型,我不知道我是否应该以某种方式显示它。

1 个答案:

答案 0 :(得分:6)

显然你需要使用常规的cairo绑定,即使你对其他一切也使用内省。

所以只是import cairo

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

当你拥有所有必需的库时,“找不到转换”错误就会消失(例如在Ubuntu上除python-gi-cairo之外还需要python-cairo包(或等效的python3包) ))。