Text-Feld Fokusmöglichkeit abschalten?

Fragen zu Tkinter.
Antworten
jake-the-snake

Hallo Forum

Folgendes Beispiel:

Code: Alles auswählen

# Rechtes textfeld 
textfeld = Text(root, height=20, width=35, takefocus=0)
textfeld.place(x=425,y=60)
textfeld.insert(END, "")
Ich versuche gerade zu erreichen, dass der Programmnutzer keine Eingaben in diesem Feld machen kann.
Das soll nur ein Anzeigefeld sein, welches den Inhalt durch den Programmablauf erhält - nicht durch Usereingaben.
Allerdings liest das Programm selbst hineigeschriebene Angaben auch wieder aus.

Jetzt bin ich den Weg gegeangen, zu verhindern, dass das Textfeld keinen Focus bekommen kann - weil - dann könnte man auch nichts hineinschreiben.
Aber takefocus=0 hat nicht den gewünschten Effekt.

Die focus-Funktion habe ich von hier: https://stackoverflow.com/questions/397 ... er-widgets nicht dass es wieder heisst, ich lese keine Dokus :wink:

Gibt es noch andere Möglichkeiten, das Feld gegen Usereingaben zu sperren?

Gruß jts
jake-the-snake

Hallo Forum

Hab was gefunden:

Code: Alles auswählen

text_widget.configure(state="disabled")
Allerdings muss man das im Programmablauf ständig schalten. Wenn es nämlich gesperrt ist, kann auch das laufende Programm nicht hineinschreiben und wahrscheinlich auch nichts herauslesen - aber das muss ich erst noch testen. :)

Guß jts
jake-the-snake

Und noch ein letztes mal Hallo :)

Für die, die es interessiert:

Textfelder, die mit:

Code: Alles auswählen

textfeld.configure(state="disabled")
gesperrt worden sind können, wenn in ihnen bereits etwas steht, trotz dieser Sperre programmtechnisch ausgelesen werden. Nur wenn das laufende Programm das Textfeld löschen will, oder etwas anderes hinein geschrieben werden soll, muss man es durch ein beherztes:

Code: Alles auswählen

textfeld.configure(state="normal")
kurz wieder öffnen bzw. beschreibbar machen. Nach der Aktion dann einfach wieder sperren.

Hat wunderbar geklappt bei mir.

Gruß jts
Benutzeravatar
Kebap
User
Beiträge: 687
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

jake-the-snake hat geschrieben:Die focus-Funktion habe ich von hier: https://stackoverflow.com/questions/397 ... er-widgets nicht dass es wieder heisst, ich lese keine Dokus :wink:

Gibt es noch andere Möglichkeiten, das Feld gegen Usereingaben zu sperren?
Hallo Jake, schön wie du dich einarbeitest. Leider würde ich Stackoverflow nicht als Doku bezeichnen. Das ist (ähnlich wie hier) eine Community, um spezielle Fragen zu beantworten, die sich dem Fragenden vielleicht nicht aus dem Lesen der Doku beantwortet haben. Trotzdem gut, dass du das Web nach Antworten durchsuchst, bevor du uns dazu befragst. Vielleicht probierst du es aber doch mal mit einer strukturierten und umfassenden Doku. Selbst wenn du sie nicht von vorne bis hinten lesen oder gar durcharbeiten magst, kann man dort solche Grundlagen der verschiedenen Arten von Widgets leicht nachschlagen.

Bspw. hier: http://www.tkdocs.com/tutorial/widgets.html#entry
Entries can also use the state flag "readonly"; if set, users cannot change the entry, though they can still select the text in it (and copy it to the clipboard).
Hierbei ist es auch so, dass die TK Doku für mehrere Programmiersprachen geschrieben wurde, da sich TK ebenfalls in mehrere Sprachen integrieren lässt. Du siehst dort ein Code Beispiel für Python, aber auch eins für Tcl, Ruby und eben Perl. :wink:
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten