Как передать аргументы подпрограммам в Perl / Tk? - PullRequest
4 голосов
/ 06 апреля 2010

Я разработал одну форму регистрации, в этой форме после получения всех необходимых значений я нажму кнопку отправки.

И, нажимая эту кнопку отправки, я хочу вызвать одну функцию и передать аргументы этой функции.

Я написал код для этой цели, но функция вызывается в первую очередь перед получением деталей. (Т.е.) после получения деталей в форме регистрации мне нужно передать эти значения в одну функцию, и мне нужно проверить эти значения .

Но произошло то, что до получения подробностей вызывается функция.

Ответы [ 3 ]

3 голосов
/ 06 апреля 2010

Предложение Карлоса - один из способов. Другой вариант - поместить на кнопку командный обратный вызов, который считывает значения из формы и вызывает вашу функцию, возможно, вот так.

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

Я предполагаю, что вы связали поля формы с переменными $var1 и $var2 здесь; Конечно, измените в соответствии с вашей ситуацией.

3 голосов
/ 06 апреля 2010

У вас есть несколько опций при указании кода ссылки и аргументов для привязки к виджету:

$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.

0 голосов
/ 06 апреля 2010

Звучит как проблема vwait. Проверьте в документации Perl / Tk для:

$widget->waitVariable(varRef)

Таким образом, вы уверены, что ваш код выполняется только при изменении переменной ожидания (когда вы нажимаете кнопку «отправить»)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...