ローカル変数であれば
python
1for i in range(1,11):
2 atai = locals()["EditBox"+str(i)].get()
3 print(atai)
グローバル変数なら globals() で変数の辞書を参照可能ですが、
このコードは変数のスコープに依存してしまうので、
独自に辞書やリストを使って管理した方が良いです。
予め辞書にオブジェクトをまとめておいて、
locals()/globals() の部分を、その辞書に置き換えるだけです。
他には、tkinter のオブジェクトには name を付けて、
nametowidget で tkinter に問い合わせるという方法もあります。
python
1#!/usr/bin/env python
2
3import tkinter as tk
4
5root = tk.Tk()
6tk.Entry(root, name="editBox1").pack()
7tk.Entry(root, name="editBox2").pack()
8tk.Entry(root, name="editBox3").pack()
9
10def click():
11 for num in [1, 2, 3]:
12 widget = root.nametowidget(".editBox{}".format(num))
13 print(widget.get())
14
15tk.Button(root, text="Click", command=click).pack()
16root.mainloop()
17
ここでの名前付には、Pythonの変数名と違った規則があります。
- 名前は小文字で始める
- nametowidget では、root "." からの 階層 で参照する
名前はウィジェットをprintすることでも確認できます。
>>> import tkinter as tk
>>> root = tk.Tk()
>>> root
<tkinter.Tk object .>
>>> print(root)
.
>>> frame = tk.Frame(root, name="frame")
>>> button = tk.Button(frame, name="button")
>>> button
<tkinter.Button object .frame.button>
>>> print(button)
.frame.button
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 14:29