Wie man das Tkinter Text-Widget schreibgeschützt macht

  1. Setzen Sie den Text Status auf disable, um Tkinter Text schreibgeschützt zu machen
  2. Binden Sie jeden Tastendruck an die break funktion, um Tkinter schreibgeschützt zu machen

Wir werden Methoden vorstellen, um das Tkinter Text-Widget schreibgeschützt zu machen,

  1. Setzen Sie den Status “Text” auf “Deaktivieren”.
  2. Binden Sie einen beliebigen Tastendruck an die Pausenfunktion.

Setzen Sie den Text Status auf disable, um Tkinter Text schreibgeschützt zu machen

Das Text Widget wird schreibgeschützt, nachdem sein Status auf disable gesetzt wurde.

import tkinter as tk
root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.configure(state='disabled')
readOnlyText.pack()

root.mainloop()

Der Standardzustand eines Text Widgets ist NORMAL, d.h. der Benutzer kann Textinhalte bearbeiten, anhängen, einfügen oder editieren.

readOnlyText.configure(state='disabled')

Sie müssen den Status des Text Widgets auf DISABLED ändern, um es schreibgeschützt zu machen. Jeder Versuch, den Text innerhalb des Widgets zu ändern, wird stillschweigend ignoriert.

Warnung

Sie müssen den Status von disabled auf normal ändern, wenn Sie beabsichtigen, den Inhalt des Text - Widgets zu aktualisieren, ansonsten bleibt es schreibgeschützt.

Binden Sie jeden Tastendruck an die break funktion, um Tkinter schreibgeschützt zu machen

Wenn wir jeden Tastendruck an die Funktion binden, die nur break an das Text Widget zurückgibt, könnten wir das gleiche Ergebnis erhalten, dass der Text schreibgeschützt wird.

import tkinter as tk
root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.bind("<Key>", lambda a: "break")
readOnlyText.pack()

root.mainloop()
Achtung

Der Unterschied zwischen dieser Lösung und der obigen Lösung ist, dass die CTRL+C hier nicht funktioniert. Es bedeutet, dass Sie den Inhalt weder bearbeiten noch kopieren können.

Wir muessen die Ausnahme von CTRL+C fuer die Funktion machen, die an den Text gebunden ist, wenn CTRL+C gewuenscht wird.

import tkinter as tk

def ctrlEvent(event):
    if(12==event.state and event.keysym=='c' ):
        return
    else:
        return "break"

root = tk.Tk()
readOnlyText = tk.Text(root)
readOnlyText.insert(1.0,"ABCDEF")
readOnlyText.bind("<Key>", lambda e: ctrlEvent(e))
readOnlyText.pack()

root.mainloop()

Verwandter Artikel - Tkinter Text

  • Wie man den Text von Tkinter Text-Widget mit einer Schaltfläche einstellt
  • Wie man die Eingabe aus dem Tkinter-Textfeld erhält
  • Verwandter Artikel - Tkinter

  • Wie man den Text von Tkinter Text-Widget mit einer Schaltfläche einstellt
  • comments powered by Disqus