TCL输入框读取变量

时间:2013-07-23 13:45:30

标签: tcl

我有一个名为'entrySerial'的输入框,用户可以在其中输入设备的序列号。应将此序列放入变量中,以便将其发送到不同的过程中。如何获取用户输入的内容并将其放入变量中?这只会在用户按下按钮后发生 - 我不希望在用户输入时读取输入。

1 个答案:

答案 0 :(得分:2)

entry widget有一个-textvariable选项,它取一个全局变量的名称,该变量将保存窗口小部件的文本值。这是实时的,因此它始终保持用户键入的当前值,但是您可以使用-validatecommand选项在某些条件下运行命令,如-validate选项所述。其中一个是关键的新闻事件(你可以检查输入),另一个有用的是在失去焦点时进行验证。例如:

set value "test"
entry .e -textvariable ::value -validate focusout -validatecommand {puts $::value; return 1}
pack .e -side left
pack [button .b -text Ok] -side right

当您通过单击另一个控件或应用程序或使用Tab切换到另一个控件来放松焦点时,应该打印输入值。