teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

説明が何故か抜けていた・・

2020/05/27 10:48

投稿

magichan
magichan

スコア15898

answer CHANGED
@@ -8,17 +8,22 @@
8
8
  ただ現状のコードでは、Widgetにどのような名前がついているのかのが表示してみないとわかりません。
9
9
  そこで、Widget 作成時にパラメータに `name` を渡すことで簡単に名前から Widget を呼び出せるようになるかと思います。
10
10
 
11
- 今回の場合は、例えば、MainのFrameの中に 'test' と書かれた LabelFrameがあり、その中に、'test_txt' と書かれた LabelFrame があり、更にその中に Labelがあるので、それぞれを 'labelframe_test', 'labelframe_test_txt', 'label_test_txt' と名前を付けることにより
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

余分なコードを削除

2020/05/27 10:48

投稿

magichan
magichan

スコア15898

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):