Wie würde ich ein Widget sperren, so dass der Benutzer nur Text auswählen und kopieren kann, aber ich wäre immer noch in der Lage, Text in die von einer Funktion oder ähnlichem einfügen?Wie kann man die Eingabe in ein Text-Widget deaktivieren, aber eine programmatische Eingabe zulassen?
Antwort
Haben Sie versucht, das Text-Widget einfach zu deaktivieren?
text_widget.configure(state="disabled")
Auf einigen Plattformen müssen Sie auch eine Bindung an <1>
geben den Fokus auf das Widget hinzufügen, andernfalls wird die Markierung für die Kopie nicht angezeigt wird:
text_widget.bind("<1>", lambda event: text_widget.focus_set())
Wenn Sie das Widget deaktivieren programmatisch müssen, einfügen Sie einfach
- ändern Sie den Zustand des Widgets
NORMAL
- I nsert den Text, und
- wechselt dann zu
DISABLED
dem Zustand zurück
Solange Sie nicht update
davon in der Mitte nennen dann gibt es keine Möglichkeit für den Benutzer etwas eingeben interaktiv zu können.
Entschuldigung, ich bin zu spät zur Party, aber ich fand diese Seite auf der Suche nach der gleichen Lösung wie Sie.
Ich fand, dass wenn Sie das Text-Widget standardmäßig "deaktivieren" und dann "normal" es am Anfang einer Funktion, die es gibt Eingabe und "deaktivieren" es wieder am Ende der Funktion.
def __init__():
self.output_box = Text(fourth_frame, width=160, height=25, background="black", foreground="white")
self.output_box.configure(state="disabled")
def somefunction():
self.output_box.configure(state="normal")
(some function goes here)
self.output_box.configure(state="disable")
Ich stolperte über den Zustand = „normal“/state = „disabled“ Lösung als gut, aber dann sind Sie nicht in der Lage zu wählen und aus ihm heraus Text kopieren. Schließlich fand ich die folgende Lösung: Is there a way to make the Tkinter text widget read only?, und diese Lösung ermöglicht Ihnen, Text auszuwählen und zu kopieren sowie Hyperlinks zu folgen.
import Tkinter
root = Tkinter.Tk()
readonly = Tkinter.Text(root)
readonly.bind("<Key>", lambda e: "break")
- 1. Nur numerische Eingabe in WPF zulassen Textfeld
- 2. Bootstrap-Formular-Eingabe: Senden verhindern, aber Eingabe überprüfen
- 3. DatagridTextColumn mit Dezimalwert, keine Eingabe zulassen
- 4. Wie verwendet man eine Eingabe in Python?
- 5. Safari: Formularübertragung bei Eingabe deaktivieren?
- 6. Kendo UI Datepicker Deaktivieren Eingabe
- 7. Zulassen, dass Benutzer jede Stunde eine Eingabe senden können?
- 8. Wie man eine Eingabe mit HTML-Code
- 9. HTML, wie Eingabe mit Javascript deaktivieren?
- 10. Touchpad bei der Eingabe deaktivieren
- 11. Wie zu deaktivieren Eingabe ausblenden bei Klick
- 12. NSTextView: Wie kann man einzelne Klicks deaktivieren, aber trotzdem die Auswahl zum Kopieren und Einfügen zulassen?
- 13. Wie man ein Programm bricht, wenn die Eingabe leer ist
- 14. Ich möchte die Schleife durch eine Zeichenfolge-Eingabe unterbrechen. Aber das Programm nimmt die Eingabe unendlich
- 15. Wie Sonderzeichen in winkeligen Js-Eingabe-Tag zu deaktivieren. Nur alphanumerisch zulassen
- 16. Deaktivieren Schreiben in Eingabe-Typ Nummer HTML5
- 17. Kombinationen deaktivieren in Textfeld und Eingabe
- 18. Wie kann man den Benutzer sauber nach Eingabe fragen und verschiedene Arten zulassen?
- 19. C++ Wie man eine Eingabe-Float-Variable für eine gültige Eingabe überprüft
- 20. So deaktivieren Sie AutoIndent bei der Eingabe
- 21. Deaktivieren Sie eine Shift-Eingabe in Access geöffnet?
- 22. Gibt es Sprachen, die dynamisch typisiert sind, aber keine schwache Eingabe zulassen?
- 23. Wie erstelle ich eine Eingabe, die nur Zeichenfolgen empfangen kann?
- 24. React.js: Deaktivieren Sie die Schaltfläche, wenn die Eingabe leer ist
- 25. Wie überprüft man Eingabe in UITextField?
- 26. jquery: Eingabe Text wie man
- 27. Wie man Eingabe in groovy maskiert
- 28. Pipe Eingabe in ein Skript
- 29. Wie man richtig für die Eingabe in Formtastic Sammlung passiert
- 30. Wie formatiert man die Eingabe von EditText bei der Eingabe mit Tausendertrennzeichen (,) in Android?
Ja, ich habe, aber nach den Dokumenten, die die Eingabe von nichts erlaubt, auch von Funktionen und so. –
@PsychicOak: natürlich. Aber um programmatisch einzufügen, müssen Sie nur den Status auf "normal" setzen, den Text einfügen und dann den Status auf "deaktiviert" setzen. Ich habe meine Antwort aktualisiert, um diese Informationen hinzuzufügen. –
* seufz * ich fühle mich jetzt dumm>.> Haha danke! Sie erhalten Ihre Punkte, wenn es erlaubt ist, xD zu akzeptieren –