Использование регионов Каира в python с gi.repository - PullRequest
6 голосов
/ 26 мая 2011

Я не могу заставить регионы Каира работать в пределах с помощью гинтроспекции.

Например

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 Ответ

6 голосов
/ 14 июля 2012

Очевидно, вам нужно использовать обычные привязки Каира, даже если вы используете самоанализ для всего остального.

Так что просто import cairo.

(я не уверен, почему gi.repository.cairoСуществует ...)

И ошибка «Не удалось найти преобразование» исчезнет, ​​когда у вас будут все необходимые библиотеки (например, в Ubuntu вам нужен пакет python-gi-cairo в дополнение к python-cairo (илиэквивалентные пакеты python3)).

...