无法通过Glade在回调中传递用户数据
我正在用pygtk和Glade制作一个应用程序。
我有一组单选按钮想要让它们正常工作。但是在切换按钮后,我在传递用户数据时遇到了困难。回调函数可以正常工作,但它没有接收到我在Glade中用户数据字段旁边输入的用户数据。
为了简单测试,我在一个类中做了这个:
def on_output_toggled(self, widget, data=None):
print data
在Glade中,有一个单选按钮,它的信号设置为“切换”,处理器是on_output_toggled,用户数据是m4b。
我期望在选择单选按钮后,终端输出应该是:
m4b
但是我得到的是:
None
我哪里做错了?除了小部件本身,什么也没有传递给回调函数。
谢谢, Narnie
2 个回答
0
我也遇到过这种问题,我的解决办法是手动连接信号。
我使用的是perl-gtk3,理论上Python也可以。
...
my $button = $builder->get_object("button");
$button->signal_connect(clicked=>\&on_output_toggled,"m4b");
...
1
你在Glade中输入的“用户数据”其实应该只是其他控件(或者说动作、对象)的名字,这些控件是在那个Glade文件里定义的。举个例子,在你的Glade文件里,必须有一个叫“m4b”的对象。