无法使用 Glade 在回调中传递用户数据

发布于 2024-11-10 00:47:28 字数 480 浏览 3 评论 0原文

我有一个使用 pygtk 和 Glade 制作的应用程序。

我有一个单选按钮系列,我正在尝试开始工作。我在尝试在切换按钮后传递用户数据时遇到了困难。回调工作正常,但没有发送在林间空地的用户数据字段中的处理程序旁边输入的用户数据。

就像一个简单的测试一样,我将其作为类的一部分进行:

def on_output_toggled(self, widget, data=None):
    print data

在 Glade 中,有一个单选按钮设置为“切换”信号,处理程序中的 on_output_toggled 和 m4b 作为用户数据。

选择单选按钮后的预期终端输出是:

m4b

我得到的是:

None

我做错了什么。除了小部件本身之外,回调中没有传递任何内容。

谢谢, 纳尼

I have an app I'm making with pygtk and Glade.

I have a radio button series I'm trying to get working. I'm getting stumped at trying to pass user data after a button is toggled. The callback works fine, but is not being sent the user data entered next to the handler in the user data field in glade.

Just as a simple test, I did this as a part of a class:

def on_output_toggled(self, widget, data=None):
    print data

within glade, there is a radiobutton that is set to signal "toggle" with on_output_toggled in the Handler and m4b as the user data.

Expected terminal output from this after the radiobutton is selected is:

m4b

What I get is:

None

What am I doing wrong. Nothing is being passed on the the callback other than the widget itself.

Thanks,
Narnie

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

潜移默化 2024-11-17 00:47:28

您在 Glade 中输入的“用户数据”实际上应该只是该 Glade 文件中定义的其他小部件(或操作或对象)的名称。就您而言,您的 Glade 文件中的某处需要有一个名为“m4b”的对象。

The "user data" you enter in Glade should actually only be the name of other widgets (or actions, or objects) defined in that Glade file. In your case, there would need to be an object named "m4b" somewhere in your Glade file.

坦然微笑 2024-11-17 00:47:28

我也遇到这样的问题,我的解决办法是手动连接信号。
我使用perl-gtk3,Python理论上可以工作。

...
my $button = $builder->get_object("button");
$button->signal_connect(clicked=>\&on_output_toggled,"m4b");
...

I meet this sort of problem too, my solution is connect signals manually.
I use perl-gtk3 ,Python works theoretically.

...
my $button = $builder->get_object("button");
$button->signal_connect(clicked=>\&on_output_toggled,"m4b");
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文