回答編集履歴

3

文章の修正

2020/09/11 08:03

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  そちらの質問になると押されたボタンがどれであるか判別するって話になりますね。
40
40
 
41
- Buttonヴィジェットのcommandで指定したメソッドには通常だと何の引数も送られないので色々と面倒です。
41
+ Buttonヴィジェットのcommandで指定した関数には通常だと何の引数も送られないので色々と面倒です。
42
42
 
43
43
  とりあえず今回はcommandではなくbindを使って引数を送る方法を記述しておきます。
44
44
 

2

文章の修正

2020/09/11 08:03

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
  そちらの質問になると押されたボタンがどれであるか判別するって話になりますね。
40
40
 
41
- Buttonヴィジェットのcomanndで指定したメソッドには通常だと何の引数も送られないので色々と面倒です。
41
+ Buttonヴィジェットのcommandで指定したメソッドには通常だと何の引数も送られないので色々と面倒です。
42
42
 
43
- とりあえず今回はcomanndではなくbindを使って引数を送る方法を記述しておきます。
43
+ とりあえず今回はcommandではなくbindを使って引数を送る方法を記述しておきます。
44
44
 
45
45
  ```python
46
46
 

1

追記

2020/09/11 08:02

投稿

yureighost
yureighost

スコア2183

test CHANGED
@@ -31,3 +31,89 @@
31
31
  ・・・
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ **追記**
38
+
39
+ そちらの質問になると押されたボタンがどれであるか判別するって話になりますね。
40
+
41
+ Buttonヴィジェットのcomanndで指定したメソッドには通常だと何の引数も送られないので色々と面倒です。
42
+
43
+ とりあえず今回はcomanndではなくbindを使って引数を送る方法を記述しておきます。
44
+
45
+ ```python
46
+
47
+ ・・・
48
+
49
+ # カレンダーを作成するフレームクラス
50
+
51
+ class mycalendar(tk.Frame):
52
+
53
+ ・・・
54
+
55
+ def create_calendar(self, year, month):
56
+
57
+ "指定した年(year),月(month)のカレンダーウィジェットを作成する"
58
+
59
+ ・・・
60
+
61
+ # 日付ボタンを格納する変数をdict型で作成
62
+
63
+ self.day = {}
64
+
65
+ # for文を用いて、日付ボタンを生成
66
+
67
+ for i in range(0, 42):
68
+
69
+ c = i - (7 * int(i / 7))
70
+
71
+ r = int(i / 7)
72
+
73
+ try:
74
+
75
+ # 日付が0でなかったら、ボタン作成
76
+
77
+ if days[r][c] != 0:
78
+
79
+ #日付ボタンを押下すると別ウィンドウを表示
80
+
81
+ self.day[i] = d_button(self.frame_calendar, text=days[r][c])
82
+
83
+ self.day[i].grid(column=c, row=r)
84
+
85
+ self.day[i].bind("<ButtonPress>", self.createNewWindow)
86
+
87
+ except:
88
+
89
+ """
90
+
91
+ 月によっては、i=41まで日付がないため、日付がないiのエラー回避が必要
92
+
93
+ """
94
+
95
+ break
96
+
97
+ ・・・
98
+
99
+ #別ウィンドウを呼び出し関数
100
+
101
+ def createNewWindow(self,event):
102
+
103
+ self.newWindow = tk.Toplevel(root)
104
+
105
+ self.app = Win2(self.newWindow,event)
106
+
107
+ ・・・
108
+
109
+ # 別ウィンドウクラス
110
+
111
+ class Win2(tk.Frame):
112
+
113
+ def __init__(self,master,event):
114
+
115
+ print(event.widget["text"])
116
+
117
+ ・・・
118
+
119
+ ```