@Goyo już odpowiedział na twoje pytanie. Chcę podzielić się moim wkładem, ponieważ nie widzę zainteresowania wybieraniem tekstu widżetu wpisu i nie robieniem z nim nic innego. Tak więc zamierzam dostarczyć ci brudne MCVE, aby pokazać, jak zamierzasz użyć zaznaczonego tekstu: a) albo go usuniesz, albo b) skopiujesz.
Dla a), poniższa funkcja będzie wykonać zadanie:
def select_text_or_select_and_copy_text(e):
e.widget.select_range(0, 'end')
będzie działać pod warunkiem powiązać odpowiednie zdarzenia opisane przez nazwa funkcji do widgetu wpis:
entry.bind('<Control-a>', select_text_or_select_and_copy_text)
entry.bind('<Control-c>', select_text_or_select_and_copy_text)
Dla b), można użyć tej funkcji:
def delete_text(e):
e.widget.delete('0', 'end')
i powiązać zdarzenie Delete
do widgetu wpis:
entry.bind('<Delete>', delete_text)
Próbowałem to MCVE na Ubuntu i to działa:
import tkinter as tk
import tkinter.ttk as ttk
def select_text_or_select_and_copy_text(e):
e.widget.select_range(0, 'end')
def delete_text(e):
e.widget.delete('0', 'end')
root = tk.Tk()
entry = ttk.Entry(root)
entry.pack()
entry.bind('<Control-a>', select_text_or_select_and_copy_text)
entry.bind('<Control-c>', select_text_or_select_and_copy_text)
entry.bind('<Delete>', delete_text)
root.mainloop()
Raczej '' (testowane na Ubuntu) –
@ BillalBEGUERADJ Zgaduję, że cmd + a jest dla mac. '' i '' wydają się działać tak samo w Windows, ale nie jestem pewien jak to działa w mac. Porady znalezione w interwebs sugerują użycie ''. –
Goyo
Masz rację, może tak być. –