我创建了一个 python 对象,但我想在它上面发送信号。我让它继承自 gobject.GObject,但似乎没有任何方法可以在我的对象上创建新信号。

有帮助吗?

解决方案

您还可以在类定义中定义信号:

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

元组的内容与最后三个参数相同 gobject.signal_new.

其他提示

具体方法如下:

import gobject

class MyGObjectClass(gobject.GObject):
    ...

gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
    None, (str, int))

其中倒数第二个参数是返回类型,最后一个参数是参数类型的元组。

如果您使用 kiwi 可用 这里 你可以这样做:

from kiwi.utils import gsignal

class MyObject(gobject.GObject):
    gsignal('signal-name')
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top