我有一個Tcl/Tk窗口,輸入框中我想強制輸入大寫字母。也就是說,如果輸入任何字母,我希望它們在輸入字段中以大寫形式出現,而不是簡單地拒絕任何小寫輸入。在Tcl/Tk輸入字段強制輸入大寫字母
我已經看過Tcl/Tk wiki上的entry和Entry Validation頁面的文檔,但我不能在正確的位置查找,因爲雖然有很多驗證示例,但我找不到示例過濾鍵輸入來改變情況。
最近我已經能夠得到的是類似以下內容:
entry .message -validate key -validatecommand {
.message insert %i [string toupper "%S"]
return 0
}
這迫使類型爲大寫的第一字符,但隨後的字符不作轉換。實際上,驗證腳本在第一個字符之後根本不被調用。如果我省略了.message insert
命令進行測試,則會爲每個字符調用驗證腳本。
請注意,我還必須檢查動作類型('%d')以確保它是1(插入),否則刪除文本將無法工作。 –