Я пытался портировать библиотеку из PyGTK для использования GI и GTK3. Проблема в том, что я не могу найти ресурсы, специфичные для импорта объектов, но только для GTK. Я надеялся, что если кто-нибудь переведет для меня следующее, я пойму, как это сделать. Вещи GTK, кажется, довольно хорошо задокументированы, но я ничего не могу найти по этому поводу.
__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,))}
Мое предположение было, так как я не мог найти какую-либо конкретную документацию, что это будет вопрос изменения названия констант, но я не могу найти никаких замен.
Думаю, что я взломал код после dir () - все, что я мог найти в классе GObject =>
G_SIGNAL_RUN_FIRST
находится в перечислении GSignalFlags
, что переводится как GObject.SignalFlags.RUN_FIRST
, Это согласуется, поэтому G_SIGNAL_MATCH_ID
, найденное в enum GSignalMatchType
, переводится как GObject.SignalMatchType.ID
.
Не совсем очевидно, но достаточно просто, если вы знаете, что искать.
Как и в предыдущих комментариях, перевод, который вы просили, был бы следующим:
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,))}
Однако, согласно моему собственному опыту, некоторые типы Python каким-то образом внутренне сопоставляются с GObject
аналогами (или по крайней мере, это работает, как если бы они были), то есть, object
отображается на GObject.TYPE_PYOBJECT
и None
на GObject.TYPE_NONE
. Следовательно, я нахожу следующую версию более простой:
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,))}