我想自定義信號添加到一個類 -PyGTK的自定義信號發送列表作爲參數
class TaskBrowser(gobject.GObject):
__list_signal__ = (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (<List datatype>,))
__gsignals__ = {'tasks-deleted': __list_signal__}
...
def on_delete_tasks(self, widget=None, tid=None):
...
gobject.idle_add(self.emit, "tasks-deleted", deleted_tasks) #deleted_tasks is of type 'list'
...
...
在__gsignals__
字典,當我說出list
作爲參數類型,我收到以下錯誤追蹤 -
File "/home/manhattan/GTG/Hamster_in_hands/GTG/gtk/browser/browser.py", line 61, in <module>
class TaskBrowser(gobject.GObject):
File "/usr/lib/python2.7/site-packages/gobject/__init__.py", line 60, in __init__
cls._type_register(cls.__dict__)
File "/usr/lib/python2.7/site-packages/gobject/__init__.py", line 115, in _type_register
type_register(cls, namespace.get('__gtype_name__'))
TypeError: Error when calling the metaclass bases
could not get typecode from object
我看到的possible parameter types名單,而且也沒有類型list
有沒有一種方法,我可以通過一個列表是一個信號參數?
嘗試TYPE_PYOBJECT。 – XORcist
它的工作原理!使用'object'或'gobject.TYPE_PYOBJECT'。 請你解釋一下爲什麼? –
指定TYPE_PYOBJECT時,可以使用任何Python對象。我猜它基本上代表'任何'。缺點是缺乏類型安全。 – XORcist