()
と引数(コールバック)することなく、ファイル名を期待SO
import tkinter as tk
def callback(event):
print('e.get():', e.get())
# or more universal
print('event.widget.get():', event.widget.get())
# select text after 50ms
root.after(50, select_all, event.widget)
def select_all(widget):
# select text
widget.select_range(0, 'end')
# move cursor to the end
widget.icursor('end')
root = tk.Tk()
e = tk.Entry(root)
e.pack()
e.bind('<Control-a>', callback)
root.mainloop()
bind
に非常に多くの類似した例がありました。しかし、bind
もこの関数を1つの引数event
で実行し、この関数を実行したエントリにアクセスできるようにして、event.widget
を使用して、多くの異なるエントリで使用することができます。そして最後にEntry
には.get()
があり、すべてのテキストを取得します。
EDIT:
ため解放したキーの後<Control-a>
選択は私が50msの後に選択を実行するためにafter()
を使用して削除されます。すべてのテキストを選択します(ただし、カーソルは先頭に移動します)。最後までカーソルを移動します。 (上記のコードを参照してください)
EDIT:
私はRelease
との正しい組み合わせを見つけることができませんでしたが、それは<Control-KeyRelease-a>
にする必要があり、今では必要ありません前にafter()
import tkinter as tk
def callback(event):
print('e.get():', e.get())
# or more universal
print('event.widget.get():', event.widget.get())
# select text
event.widget.select_range(0, 'end')
# move cursor to the end
event.widget.icursor('end')
root = tk.Tk()
e = tk.Entry(root)
e.pack()
e.bind('<Control-KeyRelease-a>', callback)
root.mainloop()
'bind'は関数名(コールバック)を期待します - それは'() 'と引数なしであることを意味します。 arggで関数を使用する引数なしで関数を作成するか、lambda:bind(...、lambda:select_all(e1)) – furas
BTW: 'Entry'はすべてのテキストを取得するためのメソッド' get() 'を持っています。 – furas