【发布时间】:2010-09-09 03:58:51
【问题描述】:
我创建了一个 python 对象,但我想在它上面发送信号。我让它继承自 gobject.GObject,但似乎没有任何方法可以在我的对象上创建新信号。
【问题讨论】:
我创建了一个 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 available here 你可以这样做:
from kiwi.utils import gsignal
class MyObject(gobject.GObject):
gsignal('signal-name')
【讨论】: