0

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

4

1 回答 1

2

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

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 切换到另一个控件来失去焦点时,这应该会打印条目值。

于 2013-07-23T14:19:42.187 回答