Seite 1 von 1

Eingaben im Feld als Grossbuchstaben anzeigen

Verfasst: Dienstag 15. November 2022, 17:17
von KlausP
Hallo,
in tkinter habe ich Eingabefelder defniert, z.B.
feld_eg_1 = tk.Entry(frame_mid, width=3, bd=1, font=('arial', 15),
textvariable = such.egm_1, bg='pale green', justify="center")
feld_eg_1.grid(column=2, row=2, pady=5) Kann ich irgendwie erreichen, dass der Text gleich automatisch in Großbuchstaben angezeigt wird?
Im späteren Aufruf, kann ich die Variable natürlich per upper() zurücksenden.

Aber in der Zwischenzeit steht da halt "e" und nicht "E"

Gruß, Klaus

Re: Eingaben im Feld als Grossbuchstaben anzeigen

Verfasst: Dienstag 15. November 2022, 18:44
von Sirius3
Dafür kann man sich Event-Handler für Stringvariablen definieren:

Code: Alles auswählen

import tkinter as tk

class Window(tk.Tk):
    def __init__(self):
        super().__init__()
        self.value = tk.StringVar(self)
        self.value.trace('w', self.value_upper)
        tk.Entry(self, textvariable=self.value).pack()

    def value_upper(self, *args):
        self.value.set(self.value.get().upper())


def main():
    window = Window()
    window.mainloop()

if __name__ == "__main__":
    main()

Re: Eingaben im Feld als Grossbuchstaben anzeigen

Verfasst: Mittwoch 16. November 2022, 12:17
von KlausP
Das gilt dann aber für alle Stringvariablen?
Oder könnte ich es auf einen einzelnen Frame begrenzen?

super().__init__() ... verstehe ich nicht

Re: Eingaben im Feld als Grossbuchstaben anzeigen

Verfasst: Mittwoch 16. November 2022, 12:24
von __deets__
Wieso sollte das fuer alle Stringvariablen gelten? Das gilt nur fuer die eine.

super().__init__() ruft den Konstruktor der Basisklasse auf. Sonst laeuft der nicht.