-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
|
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
-
!
| import tkinter as tk
def focus_next(event):
current_widget = event.widget
try:
current_index = entries.index(current_widget)
next_index = (current_index + 1) % len(entries)
entries[next_index].focus_set()
except ValueError:
pass
return "break"
root = tk.Tk()
root.title("エントリー一括生成 & フォーカス移動")
root.geometry("450x450")
layout_data = [
{"x": 30, "y": 20, "width": 10},
{"x": 150, "y": 20, "width": 30},
{"x": 30, "y": 60, "width": 20},
{"x": 220, "y": 60, "width": 20},
{"x": 30, "y": 100, "width": 45},
{"x": 30, "y": 140, "width": 15},
{"x": 180, "y": 140, "width": 15},
{"x": 30, "y": 180, "width": 45},
{"x": 30, "y": 220, "width": 25},
{"x": 250, "y": 220, "width": 20},
]
entries = []
for i, data in enumerate(layout_data):
entry = tk.Entry(root, width=data["width"])
entry.insert(0, f"入力欄 {i + 1}")
entry.place(x=data["x"], y=data["y"])
entry.bind("<Return>", focus_next)
entries.append(entry)
if entries:
entries[0].focus_set()
root.mainloop()
|