前提・実現したいこと
下記の様なコードを作りました。
例えば特定のウェジェット(entry1)で半角6桁数字入力必須としたいのですが(コードでは未設定)、この条件を満たさない場合には他のウェジェットへのフォーカス移動を禁止としようと思います。コードではウェジェットに['takefocus'] = Falseを設定し禁止しました。「tab」ではフォーカスが移動しませんが、マウス左クリックではフォーカスが移動します。
この両者を禁止する方法で、マウス等でのカーソルの現在位置を感知して移動を禁止できる可能性はわかるのですが、これ以外の方法は無いのでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
test.py
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
root.title("Entry widget")
root.geometry("300x200")
frame1 = tk.Frame(root, pady=20, padx=5)
entry1 = tk.Entry(frame1)
frame2 = tk.Frame(root, pady=20, padx=5)
entry2 = tk.Entry(frame2)
entry2['takefocus'] = False
frame3 = tk.Frame(root, pady=20, padx=5)
combo1 = ttk.Combobox(frame3)
module = ('あ', 'い', 'う', 'え', 'お')
combo1['values'] = module
combo1['takefocus'] = False
frame1.pack()
frame2.pack()
frame3.pack()
entry1.pack()
entry2.pack()
combo1.pack()
entry1.focus_set()
root.mainloop()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/03 02:32
退会済みユーザー
2021/10/03 04:11