Perl Tk/Tcl: могут ли обратные вызовы виджета принимать параметры

Можно ли создать кнопку, например, чей обратный вызов принимает параметры?

например

button(-text => 'Row1', -command => \&do_something_with('Row 1'));

Пробовал в тестовой программе, и это не похоже. Если это так, есть ли другой способ сделать то, что я собираюсь сделать с примером выше?

Моя программа должна создавать кнопки, но их число заранее неизвестно (зависит от файла.cfg).

2 ответа

Решение

Возможно, вам нужна анонимная подпрограмма, которая вызывает вашу подпрограмму хотя бы с одним параметром.

button(-text => 'Row1', -command => sub {do_something_with('Row 1', @_)});

Я не смог понять ваш вопрос ясно, но из того, что я понял, это что-то вроде:

button(-text => 'Row1', -command => \&do_something_with('Row 1'));
ttk::button -text $row -command [list RowOpertaion $row $xyz $abc]

Здесь RowOperation - это процесс с 3 параметрами, предположим row, abc, xyz. В этом процессе вы можете сделать все необходимое.

Другие вопросы по тегам