前提
PythonでTkinterを使用し、
実現したいこと
Tkinterのウィジェットをたくさん作り、全てのウィジェットの値を一つのlistにいれたい
↓のコードの様にLabelやEntryをたくさん作り、全てのEntryの値を一つのlistに入れる方法を教えてください。
現状のこのコードだと、最終行の値しか取得することができません
また、
def text_get()内を
list = []
for i in range(1,50):
list.append =[lbl_a["text"],
lbl_b["text"],
text_a.get(),
text_b.get(),
text_c.get()]
ではエラーになってしまいます。
よろしくお願いします。
該当のソースコード
import tkinter as tk root = tk.Tk() root.title("test") root.geometry("800x1200+50+100") list = [] def text_get(): list =[lbl_a["text"], lbl_b["text"], text_a.get(), text_b.get(), text_c.get()] print(list) frm_a = tk.Frame(root) frm_a.pack() btn = tk.Button(frm_a,width=10,text="ボタン") btn.grid(row=0,column=0,columnspan=2) btn["command"]=text_get lbl_a = tk.Label(frm_a, width=20,bg="white",text="2022-10-25") lbl_a.grid(row=0,column=2) for i in range(1,50): lbl_b = tk.Label(frm_a, width=10,bg="white",text=i) lbl_b.grid(row=i+4,column=0) text_a = tk.Entry(frm_a,width=20) text_a.grid(row=i+4,column=1) text_a.insert(tk.END,str(i) + '行目のtext_a') text_b = tk.Entry(frm_a,width=20) text_b.grid(row=i+4,column=2) text_b.insert(tk.END,str(i) + '行目のtext_b') text_c = tk.Entry(frm_a,width=20) text_c.grid(row=i+4,column=3) text_c.insert(tk.END,str(i) + '行目のtext_c') root.mainloop()
試したこと
def text_get()内を
list = []
for i in range(1,50):
list.append =[lbl_a["text"],
lbl_b["text"],
text_a.get(),
text_b.get(),
text_c.get()]
補足情報(FW/ツールのバージョンなど)
Python 3.10.5
Tkinter 8.6

回答2件
あなたの回答
tips
プレビュー