我正在使用pygtk。我不明白在pygtk中connect()和connect_object()有什么不同。有人能在这方面给我澄清一下吗?
谢谢。
发布于 2012-01-15 17:18:29
正如here所解释的,connect_object用于替换默认情况下传递给回调方法的对象(即发出信号的回调方法)。
例如,
>>> label = gtk.Label()
>>> button = gtk.Button()
>>> def callback(obj):
... print obj
>>> button.connect('clicked', callback) # button will be passed by default
>>> button.emit('clicked')
<gtk.Button object at 0x27cd870 (GtkButton at 0x22c6190)>
>>> button.disconnect_by_func(callback)
>>> button.connect_object('clicked', callback, label) # label will be passed instead of button
>>> button.emit('clicked')
<gtk.Label object at 0x27cd9b0 (GtkLabel at 0x22b64f0)>注意:通常在回调方法中,您会对发出信号的对象(默认情况下传递的对象)感兴趣,所以不经常使用connect_object。
编辑:除此之外,您将在here中找到以下解释:
connect_object()允许仅接受单个参数( PyGTK )的PyGTK小部件方法用作信号处理程序。
https://stackoverflow.com/questions/8868030
复制相似问题