J'ai essayé de porter une bibliothèque de PyGTK pour utiliser GI et GTK3. Le problème est que je ne trouve aucune ressource spécifique aux importations de gobject, mais uniquement pour GTK. J'espérais que si quelqu'un traduisait ce qui suit pour moi, je comprendrais comment le faire. Les informations sur GTK semblent assez bien documentées, mais je ne trouve rien à ce sujet.
__gsignals__ = {'cell-edited' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT,
gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT)), 'selection-changed' :
(gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))}
Mon hypothèse était, étant donné que je ne pouvais trouver aucune documentation spécifique, qu'il s'agirait de changer le nom des constantes, mais je ne pourrais pas trouver de remplaçant.
Je pense que j'ai déchiffré le code après avoir répété tout ce que j'ai pu trouver dans la classe GObject =>
G_SIGNAL_RUN_FIRST
se trouve dans l'énumération GSignalFlags
, qui se traduit par GObject.SignalFlags.RUN_FIRST
. Ceci est cohérent, donc G_SIGNAL_MATCH_ID
trouvé dans l'énumération GSignalMatchType
se traduit par GObject.SignalMatchType.ID
.
Pas tout à fait évident, mais assez facile une fois que vous savez quoi rechercher.
Comme dans les commentaires précédents, la traduction que vous avez demandée serait la suivante:
from gi.repository import GObject
__gsignals__ = {'cell-edited': (GObject.SignalFlags.RUN_LAST,
GObject.TYPE_NONE,
(GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT)),
'selection-changed': (GObject.SignalFlags.RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,))}
Toutefois, selon ma propre expérience, certains types python sont en quelque sorte mappés en interne sur leurs équivalents GObject
(ou du moins, cela fonctionne comme s'ils l'étaient), c'est-à-dire object
est mappé sur GObject.TYPE_PYOBJECT
et None
sur GObject.TYPE_NONE
. Par conséquent, je trouve la version suivante plus simple:
from gi.repository import GObject
__gsignals__ = {'cell-edited': (GObject.SignalFlags.RUN_LAST,
None, (object, object, object, object, object)),
'selection-changed': (GObject.SignalFlags.RUN_LAST, None, (object,))}