2013-02-19 42 views
0

如果有让我们说4个按钮,所有具有相同的Click事件,我怎样才能找出哪个按钮被按下?事件处理铁python

如果事件看起来像这样def Button_Click(self, sender, e):我敢肯定,我可以以某种方式比较发送到我的按钮。但是如何?

+0

您使用的是什么GUI工具包? – 2013-02-19 14:05:32

+0

我正在使用WPF与Visual Studio 2010 – Yui 2013-02-19 14:20:42

回答

1

嗯,我从来没有用过的IronPython,所以我不知道有多少帮助,这将是,但试图找出这些东西在常规的Python时,我通常做print type(sender)print senderprint dir(sender)到控制台(或者如果您没有可用的控制台,则输出到文件)。

这应该可以帮助您找出究竟是什么“发件人”参数。在最简单的情况下,它可能是按钮本身,所以一个简单的==将工作,知道它是哪个按钮。或者它可以有一个方法/属性让你获得按钮对象。在这种情况下,dir(sender)可能包含明显的一个,或者如果不包含,请从type(sender)获取类名,并查看是否可以找到任何文档。

+0

感谢发件人实际上是文本框,我只是不得不使用== – Yui 2013-02-19 14:47:17

+0

很高兴已经服务:) – entropy 2013-02-19 16:52:13

+0

PS:这些是我感觉像python的完全缺乏类型信息很烦人。基本上,在API中没有指定你应该给他们什么或者他们将通过回调发送什么。我意识到这是一个文档问题而不是语言问题,但至少在文档类型*有*的时候存在 – entropy 2013-02-19 16:54:22