У меня есть окно Tcl / Tk с полем ввода, в котором я хотел бы принудительно вводить символы в верхнем регистре. То есть, если набираются какие-либо буквы, я бы хотел, чтобы они отображались в верхнем регистре в поле ввода, а не просто отклоняли любой ввод строчных букв.
Я посмотрел документацию для entry и страницу Entry Validation на вики Tcl / Tk, но я не должен искать в правильном месте, потому что, хотя есть много примеров проверки, я не могу найти пример фильтрации ввода ключа для изменения регистра.
Самое близкое, что я смог получить, это что-то вроде следующего:
entry .message -validate key -validatecommand {
.message insert %i [string toupper "%S"]
return 0
}
Это заставляет первый первый символ, набранный в верхнем регистре, но последующие символы не переводятся. Фактически, скрипт проверки не вызывается вообще после первого символа. Если я опускаю команду .message insert
для тестирования, для каждого символа вызывается скрипт проверки.