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

回答編集履歴

2

間違った回答を削除

2018/05/12 09:45

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -24,43 +24,4 @@
24
24
  というメッセージが出てしまう点、悲しいものがあります。それでも、オプションを一々指定することに比べればましではないでしょうか?
25
25
 
26
26
  ---
27
- 追記質問者さんがやりたいことが今一つピンときはいないのですが、ウィジェットの標準的なプロパティとは別にアプリケーショで固有の情報をウィジェッに結び付けおきたいと解釈しました。どうするのがベストか自信ないですが、以下の例では「userOwnValue」という名前でアプリケーション固有情報をウィジェットの属性とて直接設定してしう例です。tkinter.Labelの派生クラスを定義てその中に`__value`のようなtkinterと絶対に衝突しない名前を定義すると安全とは思いますがそこまで厳密にすべきかどうか自分にはわかりませんでした。
28
-
29
- ```python
30
- import tkinter as tk
31
-
32
-
33
- root = tk.Tk()
34
- size = 40
35
-
36
- labelB = None
37
-
38
-
39
- def on_click_common(event):
40
- print('text of clicked label =', event.widget['text'])
41
- print('userOwnValue of the label =', event.widget.userOwnValue)
42
-
43
-
44
- def on_click_a(event):
45
- global labelB
46
- if labelB is None:
47
- # まだlabelBを生成してない場合のみ生成する
48
- labelB = tk.Label(root, text="×", font=size)
49
- labelB.userOwnValue = 2
50
- labelB.place(x=size)
51
- labelB.bind("<1>", on_click_b)
52
- on_click_common(event)
53
-
54
-
55
- def on_click_b(event):
56
- on_click_common(event)
57
-
58
-
59
- labelA = tk.Label(root, text="○", font=size)
60
- labelA.userOwnValue = 1
61
- labelA.place(x=0)
62
- labelA.bind("<1>", on_click_a)
63
-
64
-
65
- tk.mainloop()
66
- ```
27
+ 訂正間違っ関係ないコメントを追記してしまいました。大変失礼しました。

1

追記

2018/05/12 09:45

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -21,4 +21,46 @@
21
21
 
22
22
  JAVA_TOOL_OPTIONSはjavac, java, jarだけでなく全てのjdk/jre提供コマンドで有効な設定です。ただしコマンドを実行する度に
23
23
  `Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf8`
24
- というメッセージが出てしまう点、悲しいものがあります。それでも、オプションを一々指定することに比べればましではないでしょうか?
24
+ というメッセージが出てしまう点、悲しいものがあります。それでも、オプションを一々指定することに比べればましではないでしょうか?
25
+
26
+ ---
27
+ 追記:質問者さんがやりたいことが今一つピンときてはいないのですが、ウィジェットの標準的なプロパティとは別にアプリケーションで固有の情報をウィジェットに結び付けておきたいと解釈しました。どうするのがベストか自信ないですが、以下の例では「userOwnValue」という名前でアプリケーション固有情報をウィジェットの属性として直接設定してしまう例です。tkinter.Labelの派生クラスを定義してその中に`__value`のようなtkinterと絶対に衝突しない名前を定義すると安全とは思いますがそこまで厳密にすべきかどうか自分にはわかりませんでした。
28
+
29
+ ```python
30
+ import tkinter as tk
31
+
32
+
33
+ root = tk.Tk()
34
+ size = 40
35
+
36
+ labelB = None
37
+
38
+
39
+ def on_click_common(event):
40
+ print('text of clicked label =', event.widget['text'])
41
+ print('userOwnValue of the label =', event.widget.userOwnValue)
42
+
43
+
44
+ def on_click_a(event):
45
+ global labelB
46
+ if labelB is None:
47
+ # まだlabelBを生成してない場合のみ生成する
48
+ labelB = tk.Label(root, text="×", font=size)
49
+ labelB.userOwnValue = 2
50
+ labelB.place(x=size)
51
+ labelB.bind("<1>", on_click_b)
52
+ on_click_common(event)
53
+
54
+
55
+ def on_click_b(event):
56
+ on_click_common(event)
57
+
58
+
59
+ labelA = tk.Label(root, text="○", font=size)
60
+ labelA.userOwnValue = 1
61
+ labelA.place(x=0)
62
+ labelA.bind("<1>", on_click_a)
63
+
64
+
65
+ tk.mainloop()
66
+ ```