Как создать gsignal без параметров в pygtk - PullRequest
3 голосов
/ 07 апреля 2011

В документации по сигналу pygtk достаточно ясно о создании сигналов, но я не смог создать сигнал, который не принимает параметры.

Я хочу определить (как в примере) :

class MyGObjectClass(gobject.GObject):
    __gsignals__ = {
      "some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE),
    }

, а затем позвоните:

self.emit('some-signal') # not passing any arguments

В настоящее время я не могу этого сделать, поскольку третий параметр для gsignal_new является обязательным и не может иметь значение None.

1 Ответ

6 голосов
/ 07 апреля 2011

Просто используйте пустой кортеж в качестве третьего аргумента.

__gsignals__ = {
  "some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ()),
}
...