Вопрос: Создание окна Gtk с маской формы ввода в python


Я пытаюсь создать окно 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 я несколько озадачен. Ясно, что я делаю что-то неправильно (или что-то не так с самоанализом?). Любые советы будут оценены.


4
2018-01-23 10:12


Источник


вы можете вставить полный пример? - xubuntix
bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1028115 похоже, «исправлено, но мы ждем вверх по течению», - RobotHumans


Ответы:


К сожалению, некоторые объекты Каира еще не интродуцированы:

https://mail.gnome.org/archives/python-hackers-list/2011-December/msg00004.html

Если вы чувствуете себя авантюристами, вы можете попытаться добавить поддержку самостоятельно. В противном случае вам нужно найти обходной путь.


4
2018-01-27 22:13