验证TK/Tcl中的条目

Chr*_*les 2 tk-toolkit tcl

我正在尝试验证条目的文本输入.

entry $w.e -validate key -vcmd "entryChanged $w.l $w.e"
Run Code Online (Sandbox Code Playgroud)

我定义了以下回调.

proc entryChanged {l e} {
    puts [$e get]
    return 1
}
Run Code Online (Sandbox Code Playgroud)

问题是get返回条目的先前值,因为直到验证之后才设置新值.我的问题是如何获取新值?(要验证的值)我认为它与某些事情有关-textvariable,但是,我找不到太多关于此的文档.

gle*_*man 5

您需要仔细阅读entry文档的验证部分.例如,试试这个

... -vcmd {entryChanged  %W %s %P}

proc entryChanged {widget_name old_value new_value} {
    puts "widget name = $widget_name"
    puts "previous value = $old_value"
    puts "edited value = $new_value"
    return true
}
Run Code Online (Sandbox Code Playgroud)