pygtk中connect()和connect_object()之间的区别

时间:2012-01-15 06:44:52

标签: python gtk pygtk

我正在使用pygtk。我没有得到pygtk中connect()和connect_object()之间的区别。有人可以澄清一下吗?

感谢。

1 个答案:

答案 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)作为信号处理程序。