2010-04-06 87 views
4

我已经设计了一个注册表单,在获得所有必要的值后,我将单击“提交”按钮。如何将参数传递给Perl/Tk中的子程序?

虽然点击提交按钮我想调用一个函数,我想传递参数到该函数。我已经为此写了代码,但是在获取细节之前先调用函数(即)在获取注册表单中的细节之后,我需要将这些值传递给一个函数,并且需要验证这些函数值。

但是,发生的事情是,在获取细节之前,函数被调用。

回答

3

卡洛斯的建议是一种方法。另一种方法是在按钮上放置一个命令回调函数,从表单中读取值并调用您的函数,也许就像这样。

$button->configure(-command => sub { yourFunc($var1, $var2); }); 

我假设你已经绑定的形式向变量$var1$var2这里的领域;当然修改以适合你自己的情况。

+0

非常感谢。 – kiruthika 2010-04-06 09:50:48

0

听起来像一个vwait问题。检查的Perl/Tk的文档中:

$widget->waitVariable(varRef) 

这样你肯定当等待变量被修改时,才会执行代码(也就是当你点击“提交”按钮)

希望它帮助。

3

你有许多选项,指定当代码裁判和参数绑定到一个小窗口:

$w->configure(-command => [ \&subname, @args ... ]   ); 
$w->configure(-command => [ sub { ... }, @args ... ]   ); 
$w->configure(-command => [ 'methodname', $invocant, @args ... ]); 
$w->configure(-command => [ $invocant, 'methodname', @args ... ]); 

Tk::callbacks POD以获得更多信息。

相关问题