2013-07-23 61 views
0

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

回答

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键切换到另一个控制打印项的值时,你失去焦点无论是。