0
我被引導使用GObject's "add_emission_hook"後面recent question on SO,但我似乎無法找到一個用法示例。GObject.add_emission_hook用法
有沒有人有一個共享,請?
我被引導使用GObject's "add_emission_hook"後面recent question on SO,但我似乎無法找到一個用法示例。GObject.add_emission_hook用法
有沒有人有一個共享,請?
在IRC#pygtk有益的人經過討論,這裏是我想出了:
import gobject
class Signals(gobject.GObject):
__gsignals__ = {
"lastfm_username_changed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)) #@UndefinedVariable
}
def __init__(self):
gobject.GObject.__init__(self)
class Bus(object):
"""
Message Bus - Borg pattern
"""
_signals=Signals()
@classmethod
def emit(cls, name, *pa, **kwa):
cls._signals.emit(name, *pa, **kwa)
@classmethod
def add_emission_hook(cls, name, callback):
gobject.add_emission_hook(cls._signals, name, callback)
if __name__=="__main__":
def callback(self, data):
print "callback: data=%s" % data
Bus.add_emission_hook("lastfm_username_changed", callback)
Bus.emit("lastfm_username_changed", "jldupont")
我只能找到與谷歌的於codesearch,http://google.com/codesearch舉幾個例子? hl = en&lr =&q =「add_emission_hook」+ lang:python&sbtn =搜索或koders,http://www.koders.com/default.aspx?s="add_emission_hook"&submit=Search&la=Python&li=*,但也許他們可以幫你? – 2010-01-18 19:24:39
據我所知,除了傳遞一個類作爲第一個參數外(PyGTK版本也接受一個對象;我認爲它會自動爲您提供類),您可以像使用«object».connect一樣使用它)。因此,對於您提到的特定示例,它將是gobject.add_emission_hook(Car,'engine-started',myCallback)。 雖然我從來沒有真正使用它,所以我可能是錯的。 – 2010-01-18 23:10:26