回答編集履歴

2

サンプルコードを追記

2022/10/18 03:51

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -15,6 +15,41 @@
15
15
  即時リストに反映したければ、StringVar オブジェクトの trace メソッドで
16
16
  値が変更されたタイミングで任意の関数を呼び出す事が出来ます。
17
17
 
18
+
19
+ ```python
20
+ #!/usr/bin/env python3.10
21
+
22
+ import tkinter as tk
23
+
24
+ def main() -> None:
25
+ """
26
+
27
+ """
28
+
29
+ root = tk.Tk()
30
+
31
+ var_list = []
32
+ for _ in range(5):
33
+ var = tk.StringVar(root)
34
+ var_list.append(var)
35
+ entry = tk.Entry(root, textvar=var)
36
+ entry.pack()
37
+
38
+ def onClicked():
39
+ result = [
40
+ v.get().split(" ") for v in var_list
41
+ ]
42
+ print(result)
43
+ button = tk.Button(root, text="Test", command=onClicked)
44
+ button.pack()
45
+
46
+ root.mainloop()
47
+
48
+
49
+ if __name__ == '__main__':
50
+ main()
51
+ ```
52
+
18
53
  ----
19
54
  補足
20
55
  textvariable=self.f_s_pref で参照を持たせているように見えますが、ここは特殊なケースで

1

解答を追記

2022/10/18 03:36

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -5,6 +5,16 @@
5
5
 
6
6
  解決策としては、StringVar, IntVar も他のウィジェット同様にリストへ格納するようにして見て下さい。
7
7
 
8
+
9
+ > エンターキーを押したら逐一リストに格納していくといったような動きが可能になればと考えています。
10
+
11
+ 見落としていたので追記
12
+ まずは、StringVar のリストを作成します。(textvariable で使う為に必須)
13
+
14
+ その後は用途次第で、必要なタイミングで StringVar のリストから値を取り出すか、
15
+ 即時リストに反映したければ、StringVar オブジェクトの trace メソッドで
16
+ 値が変更されたタイミングで任意の関数を呼び出す事が出来ます。
17
+
8
18
  ----
9
19
  補足
10
20
  textvariable=self.f_s_pref で参照を持たせているように見えますが、ここは特殊なケースで