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. В этом процессе вы можете сделать все необходимое.