Я пытаюсь создать Окно Gtk3 с пользовательской маской ввода, так, чтобы окно не получало бы щелчков мышью. Это - часть кода, который я имею, придумал:
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w , h)
surface_ctx = cairo.Context(surface)
surface_ctx.set_source_rgba(1.0, 1.0, 1.0, 0.0)
surface_ctx.set_operator(cairo.OPERATOR_SOURCE)
surface_ctx.paint()
reg = Gdk.cairo_region_create_from_surface(surface)
widget.input_shape_combine_region(reg)
К сожалению, назовите к Gdk.cairo_region_create_from_surface () сбои с этой ошибкой:
Traceback (most recent call last):
File "../kazam/frontend/window_region.py", line 144, in cb_draw reg = Gdk.cairo_region_create_from_surface(surface)
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43, in function return info.invoke(*args, **kwargs)
TypeError: Couldn't find conversion for foreign struct 'cairo.Region'
После осмотра файла Gdk-3.0.gir я несколько экранирован. Очевидно я делаю что-то не так (или существует что-то не так с самоанализом?). Любой совет будет цениться.
К сожалению, некоторые Каирские объекты еще не анализируются:
https://mail.gnome.org/archives/python-hackers-list/2011-December/msg00004.html
Если Вы чувствуете себя предприимчивыми, можно попытаться добавить поддержку собой. Иначе необходимо найти обходное решение.