我设计了一个注册表单,在获得所有必要的值后,我将在此表单中单击提交按钮。
在单击该提交按钮时,我想调用一个函数并将参数传递给该函数。
我为此目的编写了代码,但是在获取详细信息之前首先调用该函数。(即)在获取注册表单中的详细信息后,我需要将这些值传递给一个函数,并且我需要验证这些值。
但发生的事情是,在获取详细信息之前,该函数被调用。
卡洛斯的建议是一种方式。另一个是在按钮上放置一个命令回调,从表单中读取值并调用您的函数,也许像这样。
$button->configure(-command => sub { yourFunc($var1, $var2); });
我假设您已将表单的字段绑定到变量$var1
和$var2
此处;当然要根据自己的情况进行修改。
在指定代码引用和绑定到小部件的参数时,您有许多选项:
$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。
听起来像一个 vwait 问题。在 Perl/Tk 文档中查看:
$widget->waitVariable(varRef)
通过这种方式,您可以确定您的代码仅在修改等待变量时执行(即当您单击“提交”按钮时)
希望能帮助到你。