Tkinter Text Buchstaben sperren
Verfasst: Montag 17. April 2023, 19:52
Hallo,
Ich habe neulich mit tkinter ein Programm geschrieben das in einem Textfeld einzelne Buchstaben sperrt. Allerdings kann man Buchstaben immer noch mit Hexadezimalcode(z. B. Alt+066) eingeben.
Bei Google hab ich dazu nichts gefunden und ich wäre froh wenn mir jemand helfen könnte.
Mein Code:
Ich habe neulich mit tkinter ein Programm geschrieben das in einem Textfeld einzelne Buchstaben sperrt. Allerdings kann man Buchstaben immer noch mit Hexadezimalcode(z. B. Alt+066) eingeben.
Bei Google hab ich dazu nichts gefunden und ich wäre froh wenn mir jemand helfen könnte.
Mein Code:
Code: Alles auswählen
import tkinter as tk
class MyText(tk.Text):
def __init__(self, sperren, *args, **kw):
super().__init__()
if not(isinstance(sperren, str)):
raise TypeError("\"Sperren\" muss ein String sein!")
else:
self.bind("<Control-v>", self.__sperreBuchstabe)
for gesperrt in sperren:
self.bind("<KeyPress-{}>".format(gesperrt), self.__sperreBuchstabe)
def __sperreBuchstabe(self, event):
return "break"
def main():
fenster = tk.Tk()
fenster.title("Texttest")
keinABC = tk.Label(fenster, text="Du kannst keine As, Bs und Cs eingeben!")
keinABC.pack()
text = MyText("abcABC", fenster)
text.focus_set()
text.pack()
fenster.mainloop()
if __name__ == "__main__":
main()