Come farei per bloccare un widget Text
in modo che l'utente possa solo selezionare e copiare il testo da esso, ma sarei ancora in grado di inserire del testo nello Text
da una funzione o simile?Come disabilitare l'input per un widget di testo ma consentire l'input programmatico?
risposta
Hai provato semplicemente a disabilitare il widget di testo?
text_widget.configure(state="disabled")
Su alcune piattaforme, è inoltre necessario aggiungere un vincolante per <1>
per dare l'attenzione al widget, altrimenti l'evidenziazione per la copia non viene visualizzato:
text_widget.bind("<1>", lambda event: text_widget.focus_set())
Se si disattiva il widget , per inserire programatically è sufficiente
- cambiare lo stato del widget per
NORMAL
- I NSERT il testo, e quindi
- cambiare lo stato di nuovo a
DISABLED
Finché non si chiama update
nel bel mezzo di quella allora non c'è modo per l'utente sia in grado di entrare in qualsiasi cosa in modo interattivo.
Scusa se sono in ritardo per la festa ma ho trovato questa pagina cercando la stessa soluzione che hai.
Ho scoperto che se si "disabilita" il widget Testo di default e poi "normale" esso all'inizio di una funzione che gli dà l'input e lo "disabilita" di nuovo alla fine della funzione.
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")
sono incappato lo stato = state = soluzione "normale"/"disabile", così, però poi non si riesce a selezionare e copiare il testo da esso. Finalmente ho trovato la soluzione di seguito da: Is there a way to make the Tkinter text widget read only?, e questa soluzione consente di selezionare e copiare il testo e seguire i collegamenti ipertestuali.
import Tkinter
root = Tkinter.Tk()
readonly = Tkinter.Text(root)
readonly.bind("<Key>", lambda e: "break")
- 1. Come disabilitare un widget "dijit.form.FilteringSelect"?
- 2. NSTextView: come disabilitare i clic singoli, ma consentire comunque la selezione per copia e incolla?
- 3. C'è un modo per disabilitare gli aggiornamenti/eliminazioni, ma consentire comunque ai trigger di eseguirli?
- 4. Come impostare il testo sulla vista testo di un widget
- 5. Come evidenziare il testo in un widget di testo tkinter
- 6. Come recuperare testo dalla casella di testo nel widget Android?
- 7. C'è un modo per selezionare in modo programmatico il testo in un TextView?
- 8. Widget Android: come modificare il testo di un pulsante
- 9. Come disabilitare default_scope per un belongs_to?
- 10. Ottieni il testo di un widget di pulsante
- 11. restrizione angolare per non consentire spazi nel campo di testo
- 12. Come reindirizzare stdout a un widget Tkinter Testo
- 13. completamento automatico non consentire l'immissione di testo libero?
- 14. Come è possibile configurare una tastiera virtuale di EditText per utilizzare inizialmente i numeri, ma consentire comunque il testo?
- 15. Imposta la posizione del cursore in un widget di testo
- 16. Personalizzatore tema Wordpress - Aggiungi area per consentire agli utenti di spostarsi e organizzare i widget
- 17. Come widget all'interno di un altro widget in QT?
- 18. disabilitare l'input di testo di storia
- 19. Per sostituire, ma l'ultima occorrenza di stringa in un testo
- 20. Come posso disabilitare l'amministratore di Django in un progetto distribuito, ma tenerlo per lo sviluppo locale?
- 21. Voce di selezione del testo programmatico con interruzioni di riga
- 22. Esiste un modo per consentire agli utenti di copiare il testo da un sito Web e il testo non formattato?
- 23. Come associare gli eventi di auto nel widget Testo di Tkinter dopo che sarà stato associato al widget Testo?
- 24. In una casella di testo, proteggere le prime parole, ma consentire l'aggiunta/modifica al testo oltre quelle parole
- 25. Segnaposto per un widget personalizzato
- 26. Disabilitare lo schermo sleep in modo programmatico su Android?
- 27. Python registrazione a Tkinter Testo Widget
- 28. Come proibire l'ereditarietà pubblica ma consentire l'ereditarietà privata (e protetta)
- 29. aggiungere funzionalità avanzate a un widget Tkinter Testo
- 30. Collegamento ipertestuale nel widget Testo Tkinter?
Sì, sì, ma secondo i documenti, che non consente l'inserimento di nulla, anche da funzioni e così via. –
@PsychicOak: ovviamente. Ma per inserire programmaticamente tutto ciò che devi fare è impostare lo stato su "normale", inserire il testo, quindi resettare lo stato su "disabilitato". Ho aggiornato la mia risposta per includere tali informazioni. –
* sospiro * mi sento stupido ora>.> Haha grazie! otterrete i vostri punti quando sono autorizzato ad accettare xD –