如何限制输入字段中的输入?
How to limit the input in an entry field?
写一个UI最终修改了一个文本文件,我想知道我是否可以确保用户的输入在预定义的范围内。
例如,我希望用户只输入 10000 到 99999 之间的值
label .labelSalary -text "Enter Salary"
entry .entrySalary -width 20 -relief sunken -textvariable salary
您需要为 entry
widget 使用 -validate
、-validatecommand
和 -invalidcommand
选项:演示
#!/usr/bin/env tclsh
package require Tk
proc validateSalary {} {
expr {$::salary eq "" || (10000 <= $::salary && $::salary <= 99999)}
}
proc invalidSalary {} {
tk_messageBox -type ok -icon warning \
-title "Invalid Salary" \
-message "Salary $::salary is not in the requested range"
}
label .labelSalary -text "Enter Salary"
entry .entrySalary -width 20 -relief sunken -textvariable salary \
-validate focusout \
-validatecommand validateSalary \
-invalidcommand invalidSalary
pack .labelSalary .entrySalary -side left
写一个UI最终修改了一个文本文件,我想知道我是否可以确保用户的输入在预定义的范围内。
例如,我希望用户只输入 10000 到 99999 之间的值
label .labelSalary -text "Enter Salary"
entry .entrySalary -width 20 -relief sunken -textvariable salary
您需要为 entry
widget 使用 -validate
、-validatecommand
和 -invalidcommand
选项:演示
#!/usr/bin/env tclsh
package require Tk
proc validateSalary {} {
expr {$::salary eq "" || (10000 <= $::salary && $::salary <= 99999)}
}
proc invalidSalary {} {
tk_messageBox -type ok -icon warning \
-title "Invalid Salary" \
-message "Salary $::salary is not in the requested range"
}
label .labelSalary -text "Enter Salary"
entry .entrySalary -width 20 -relief sunken -textvariable salary \
-validate focusout \
-validatecommand validateSalary \
-invalidcommand invalidSalary
pack .labelSalary .entrySalary -side left