Tkinter Tutorials

Création de widgets texte Tkinter en lecture seule

Spread the love

Le widget Text de Tkinter offre un moyen flexible d’afficher et de modifier du texte, mais il est parfois nécessaire de restreindre l’interaction de l’utilisateur. Cet article explore comment créer un widget Text en lecture seule dans Tkinter, en se concentrant sur les méthodes les plus efficaces et les plus directes.

Rendre un widget Tkinter Text en lecture seule

L’approche la plus simple et la plus recommandée consiste à utiliser l’attribut state. En définissant cet attribut sur DISABLED, toute entrée utilisateur est efficacement empêchée, rendant le widget en lecture seule.


import tkinter as tk

root = tk.Tk()

text_widget = tk.Text(root, height=10, width=30)
text_widget.insert(tk.END, "Ce texte est en lecture seule.")
text_widget.config(state=tk.DISABLED)
text_widget.pack()

root.mainloop()

Cet extrait de code crée un widget Text, le remplit avec du texte, puis le désactive à l’aide de text_widget.config(state=tk.DISABLED). Pour réactiver l’édition, il suffit de remettre l’état sur NORMAL à l’aide de text_widget.config(state=tk.NORMAL).

Basculer dynamiquement le mode lecture seule

Pour les situations où vous devez basculer entre les états lecture seule et éditable de manière dynamique, vous pouvez facilement basculer l’attribut state :


import tkinter as tk

root = tk.Tk()

text_widget = tk.Text(root, height=10, width=30)
text_widget.insert(tk.END, "Ce texte est initialement éditable.")
text_widget.pack()

def toggle_readonly():
    if text_widget['state'] == tk.NORMAL:
        text_widget.config(state=tk.DISABLED)
        button.config(text="Activer l'édition")
    else:
        text_widget.config(state=tk.NORMAL)
        button.config(text="Désactiver l'édition")

button = tk.Button(root, text="Désactiver l'édition", command=toggle_readonly)
button.pack()

root.mainloop()

Cet exemple amélioré ajoute un bouton qui bascule le widget Text entre les modes lecture seule et éditable.

Aborder les préoccupations courantes

  • Sélection de texte : Même lorsqu’il est désactivé, les utilisateurs peuvent toujours sélectionner du texte dans le widget.
  • Copier-coller : La désactivation du widget n’empêche pas la fonctionnalité copier-coller. Des techniques plus avancées seraient nécessaires pour restreindre complètement cela.
  • Lecture seule partielle : Le widget Text de Tkinter ne prend pas en charge la mise en lecture seule de seulement des parties du texte. Pour cela, envisagez d’utiliser plusieurs widgets ou une solution personnalisée.

Conclusion

La définition de l’attribut state sur DISABLED est la méthode la plus efficace pour créer un widget Text Tkinter en lecture seule. Sa simplicité et sa clarté en font l’approche préférée dans la plupart des scénarios. L’exemple de basculement dynamique montre à quel point il est facile de gérer le comportement en lecture seule dans vos applications.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *