Je suis le mainteneur de GPSD. Ayant appris que les bindings de gobject pour pygtk sont obsolètes, j'essaye de rediriger le portage de nos clients de test Python vers python-gi. J'ai porté des xgps avec peu de difficulté en utilisant le pygi-convert.sh script, mais j'ai maintenant un problème avec xgpsspeed. Après avoir exécuté pygi-convert.sh sur xgpsspeed, je dois d'abord corriger manuellement le signal "expos_event", en le remplaçant par "draw". Je m'y attendais, comme je devais faire la même chose dans le port xgps réussi.Champ de contexte du Caire inconnu lors du portage vers python-gi
L'exécution de la version patchée jette cette erreur:
Traceback (most recent call last):
File "./xgpsspeed", line 72, in draw
event.area.x,
AttributeError: 'cairo.Context' object has no attribute 'area'
qui se rapporte clairement à cette section de code dans le gestionnaire de méthode:
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
)
Ma recherche-fu ne tourne pas en raison apparente pour que l'argument event soit passé un contexte Cairo sous 3.x plutôt que l'événement attendu et obtenu sous 2.x. Je peux seulement deviner que la signature du gestionnaire a changé, mais je ne trouve aucune documentation qui traite la question.