我无法修复spinbox
. 具体来说,我需要在更改旋转框的值时通过它-command
和update
在其中更新 GUI。
稍微简化的代码如下:
package require Tk
set sv 1
ttk::spinbox .sp -from 1 -to 9 -textvariable ::sv \
-command {
after 50 ;# some processing imitated
puts [incr ::tmp]:$::sv ;# changes shown in CLI - ok
update ;# changes shown in GUI - ???
}
pack .sp
问题是当单击旋转框的箭头(更多“向上”而不是“向下”,但我没有发现任何规律性)然后按下 10-20 秒时,旋转框进入无限循环更新,如图puts
所示.
当然,原因update
在-command
代码中,但我不能没有它。
在 Windows (Tk 8.6.8) 和 Linux (Tk 8.6.10) 中尝试过,ttk::spinbox
并且spinbox
,所有这些都暴露了怪胎。
有什么办法可以克服这个吗?非常感谢您的帮助。