Я являюсь хранителем GPSD. Узнав, что привязки gobject для pygtk устарели, я пытаюсь перенаправить наши тестовые клиенты Python на python-gi. Я портировал xgps с небольшими трудностями, используя pygi-convert.sh script, но теперь я испытываю трудности с xgpsspeed.Неизвестное поле контекста Каира при портировании на python-gi
После запуска pygi-convert.sh на xgpsspeed, я сначала должен зафиксировать сигнал «expose_event», изменив его на «draw». Я ожидал этого, поскольку я должен был сделать то же самое в успешном порту xgps.
Запуск пропатченном выдает эту ошибку:
Traceback (most recent call last):
File "./xgpsspeed", line 72, in draw
event.area.x,
AttributeError: 'cairo.Context' object has no attribute 'area'
, который явно относится к этой части кода в обработчике метода:
def draw(self, _unused, event, _empty=None):
self.cr = self.get_window().cairo_create()
self.cr.rectangle(
event.area.x,
event.area.y,
event.area.width,
event.area.height
)
Мой поиск-фу не поднимая какой-либо очевидной причины для аргумента события передается каирский контекст под 3.x, а не событие, которое оно ожидает и получило под 2.x. Я могу только догадываться, что подпись обработчика изменилась, но я не могу найти документацию, которая решает вопрос.