Ich habe ein Tcl/Tk-Fenster mit einem Eingabefeld, in dem ich die Eingabe von Großbuchstaben erzwingen möchte. Das heißt, wenn irgendwelche Buchstaben eingegeben werden, möchte ich, dass sie in Großbuchstaben im Eingabefeld erscheinen, anstatt einfach jede Kleinbuchstabeingabe abzulehnen.
Ich habe mir die Dokumentation für Eintrag und die Validierung von Einträgen Seite im Tcl/Tk-Wiki, aber ich habe wohl nicht an der richtigen Stelle gesucht, denn obwohl es viele Validierungsbeispiele gibt, kann ich kein Beispiel für das Filtern der Tasteneingabe finden, um die Groß-/Kleinschreibung zu ändern.
Am ehesten konnte ich etwas wie das Folgende herausfinden:
entry .message -validate key -validatecommand {
.message insert %i [string toupper "%S"]
return 0
}
Dies zwingt die erste Zeichen in Großbuchstaben umgewandelt, aber nachfolgende Zeichen werden nicht übersetzt. Tatsächlich wird das Validierungsskript nach dem ersten Zeichen überhaupt nicht mehr aufgerufen. Wenn ich das .message insert
zu testen, wird das Validierungsskript für jedes Zeichen aufgerufen.