Gre*_*ill 4 validation tk-toolkit tcl
我有一个带有输入框的Tcl/Tk窗口,我想强制输入大写字符.也就是说,如果键入任何字母,我希望它们在输入字段中以大写形式出现,而不是简单地拒绝任何小写输入.
我查看了Tcl/Tk wiki上的条目和条目验证页面的文档,但我一定不能找到正确的位置,因为虽然有很多验证示例,但我找不到过滤密钥的示例改变案例的输入.
我能得到的最接近的是如下:
entry .message -validate key -validatecommand {
.message insert %i [string toupper "%S"]
return 0
}
Run Code Online (Sandbox Code Playgroud)
这会强制键入的第一个字符为大写,但后续字符不会被翻译.实际上,在第一个字符之后根本不调用验证脚本.如果我省略了.message insert测试命令,则会为每个字符调用validate脚本.
如果在验证命令中为条目设置新值,则关闭验证(可能是为了防止无限循环).但是你可以在之后重新打开它:
entry .message -validate key -validatecommand {
.message insert %i [string toupper "%S"]
.message configure -validate key
return 0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |