tkinterでentryに文字を入力するたびに、入力されている文字列を取得したいと考えています。
python
1import tkinter as tk 2 3root = tk.Tk() 4sv = tk.StringVar() 5sv.set("") 6entry = tk.Entry(root, textvariable=sv, validate="key", validatecommand=pri) 7entry.pack() 8 9def pri(): 10 print(sv.get()) 11 return True 12 13root.mainloop()
で取得しようとしたのですが、validateは入力可否の判定のためのものなので、取得できるのは新たな文字を入力する1つ前の文字列でした。
また、
python
1import tkinter as tk 2 3root = tk.Tk() 4entry = tk.Entry(root) 5entry.pack() 6 7def pri(event): 8 print(entry.get()) 9 10entry.bind("<KeyRelease>", lambda event: pri(event)) 11root.mainloop()
とすると、半角英数字を入力するときは希望通りの挙動になるのですが、日本語や全角を入力するときは、ENTERで確定するまではentryに入力されたことにならず、ENTERで確定した途端にそれまでのものが複数回まとめて表示されてしまいます。
全角かなであっても、entryに文字が入力されるたび(ENTERで確定したとき)に一回だけ文字列を取得する方法はありませんでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/22 13:20