回答編集履歴
2
説明が何故か抜けていた・・
answer
CHANGED
@@ -8,17 +8,22 @@
|
|
8
8
|
ただ現状のコードでは、Widgetにどのような名前がついているのかのが表示してみないとわかりません。
|
9
9
|
そこで、Widget 作成時にパラメータに `name` を渡すことで簡単に名前から Widget を呼び出せるようになるかと思います。
|
10
10
|
|
11
|
-
今回の場合は、
|
11
|
+
今回の場合は、
|
12
12
|
|
13
|
+
- MainのFrameの中に 'test' と書かれた LabelFrameがある
|
14
|
+
- その中に、'test_txt' と書かれた LabelFrame がある
|
13
|
-
|
15
|
+
- 更にその中に Labelがある
|
16
|
+
|
17
|
+
という構成なので、それぞれを 'labelframe_test', 'labelframe_test_txt', 'label_test_txt' と名前を付けることにより
|
18
|
+
|
14
19
|
```
|
15
20
|
win = Main(root)
|
16
21
|
idget = win.nametowidget('LabelFrame_test.LabelFrame_test_txt.Label_test_txt)
|
17
22
|
widget['text'] = 'new_text'
|
18
23
|
```
|
24
|
+
のようにWidgetを取得することで、書き換えることができると思います。
|
19
25
|
|
20
|
-
の
|
26
|
+
以上の修正を加えると、下記のようになります。
|
21
|
-
|
22
27
|
```Python
|
23
28
|
import tkinter as tk
|
24
29
|
import tkinter.ttk as ttk
|
1
余分なコードを削除
answer
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
|
11
11
|
今回の場合は、例えば、MainのFrameの中に 'test' と書かれた LabelFrameがあり、その中に、'test_txt' と書かれた LabelFrame があり、更にその中に Labelがあるので、それぞれを 'labelframe_test', 'labelframe_test_txt', 'label_test_txt' と名前を付けることにより
|
12
12
|
|
13
|
+
以上の修正を加えると、下記のようになります。
|
13
14
|
```
|
14
15
|
win = Main(root)
|
15
16
|
idget = win.nametowidget('LabelFrame_test.LabelFrame_test_txt.Label_test_txt)
|
@@ -35,7 +36,6 @@
|
|
35
36
|
for i in test_label:
|
36
37
|
a = tk.LabelFrame(frame, text=i, name=f'labelframe_{i}')
|
37
38
|
b = tk.Label(a, text=test_label[i], name=f'label_{i}')
|
38
|
-
print(b)
|
39
39
|
[widget.pack(side=tk.LEFT) for widget in (a, b)]
|
40
40
|
|
41
41
|
def re_set(owner):
|