按tk按钮退出循环

时间:2016-02-09 11:32:03

标签: tcl

我是新的tcl / tk用户。我只想要一个简单的例子,说明如何通过按下按钮退出foreach循环。我试图关注http://wiki.tcl.tk/564中的一些例子,但遗憾的是它不起作用。

1 个答案:

答案 0 :(得分:0)

为了中断循环(可以是foreach循环或任何其他类型),您必须运行与循环交错的事件循环。这是通过在循环中调用update来完成的。完成update后,您可以检查状态变量以查看是否已请求终止。

set var 0
pack [button .b -text "Stop" -command {set var 1}]
foreach value $veryLongList {
    processThe $value
    update
    if {$var} {
        break
    }
}
destroy .b

BE AWARE!

这使得代码可能存在重入问题。