我正在使用pygtk。我没有得到pygtk中connect()和connect_object()之间的区别。有人可以澄清一下吗?
感谢。
答案 0 :(得分:4)
正如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小部件方法只使用一个参数(self)作为信号处理程序。