J'essayais d'utiliser la fonction undo
sur mon widget de texte dans tkinter
mais sans aucune chance. Je l'ai essayé de cette façon:Annuler fonctionnalité dans le widget texte tkinter
from Tkinter import *
from ttk import Notebook
def OnVsb(*args):
text.yview(*args)
numbers.yview(*args)
def OnMouseWheel(event):
text.yview("scroll", event.delta,"units")
numbers.yview("scroll",event.delta,"units")
return "break"
def undo(*argv):
text.edit_undo()
root = Tk()
defaultbg = root.cget('bg')
root.bind('<Control-z>', undo)
note = Notebook(root)
frame = Frame(note, bd=5, relief=GROOVE, padx=5, pady=5)
frame.pack()
bar = Scrollbar(frame, command=OnVsb)
bar.pack(side=RIGHT, fill=Y)
numbers = Listbox(frame, width=5, height=30,bg=defaultbg,relief=FLAT, yscrollcommand=bar.set)
numbers.pack(side=LEFT, fill=Y)
text = Text(frame,bd=3, width=145, height=30, yscrollcommand=bar.set)
text.pack(side=LEFT, fill=Y)
text.bind("<MouseWheel>", OnMouseWheel)
text.tag_config("attr", foreground="tomato")
text.tag_config("value", foreground="dark violet")
text.tag_config("tags", foreground="dodger blue")
text.tag_config("text", font=("Georgia", "9", "bold"))
text.focus_set()
root.lift()
root.call('wm', 'attributes', '.', '-topmost', '1')
root.after_idle(root.call, 'wm', 'attributes', '.', '-topmost', False)
root.mainloop()
Mais pour une raison quelconque, il ne fait rien. Je pensais qu'il était implémenté par défaut dans le widget texte, mais cela n'a pas fonctionné. Des suggestions sur la façon d'utiliser cette fonctionnalité sur un widget de texte? Tout exemple serait très apprécié.
N'utilisez pas d'arguments arbitraires, utilisez une référence unique à l'événement. C'est, juste un argument. –
Veuillez coller votre code entier pour plus de contexte. –
Pouvez-vous héberger un lien vers le code complet quelque part pour le télécharger? –