pygtk中connect()和connect_object()的区别
我在使用pygtk。想问一下,connect()和connect_object()这两个有什么区别?能不能给我解释一下?
谢谢。
1 个回答
4
正如这里所解释的,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
并不常用。
补充说明:此外,你可以在这里找到以下解释:
connect_object()
允许PyGTK的控件方法只接受一个参数(self)作为信号处理器。