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

質問編集履歴

2

2021/06/30 20:57

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -193,11 +193,11 @@
193
193
  ###追記・試したこと
194
194
 
195
195
  まず、Pythonのtkinterで二つのボタンを作成し、
196
- 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにしと思いましたが、これもうまくいきませんでした
196
+ 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにしようと思いましたが、これもうまくいきませんでした
197
197
 
198
198
  calenderとdatetimeを使って、ifで、金曜日かそれ以外かを判断する
199
199
  それぞれのボタンを条件によって、buttonFri.pack_forget()で非表示にしたいので、
200
- 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたい
200
+ 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたらうまくくかと思ったのですが、だめでした
201
201
  単純に=で入れたら(たぶん)文字列になってしまって、buttonFri.pack_forget()されない
202
202
  どうしたらいいでしょうか?
203
203
 

1

まずは退勤ボタンの部分だけ考えてみようと思って、追記しました

2021/06/30 20:57

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -190,9 +190,66 @@
190
190
 
191
191
  ```
192
192
 
193
+ ###追記・試したこと
193
194
 
195
+ まず、Pythonのtkinterで二つのボタンを作成し、
196
+ 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにし用と思いましたが、これもうまくいきませんでした
194
197
 
198
+ calenderとdatetimeを使って、ifで、金曜日かそれ以外かを判断する
199
+ それぞれのボタンを条件によって、buttonFri.pack_forget()で非表示にしたいので、
200
+ 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたい
201
+ 単純に=で入れたら(たぶん)文字列になってしまって、buttonFri.pack_forget()されない
202
+ どうしたらいいでしょうか?
195
203
 
204
+ ```test.py
205
+
206
+ import tkinter as tk
207
+ import calendar
208
+ import datetime
209
+
210
+ '''
211
+ 曜日判定
212
+
213
+ 月 火 水 木 金 土 日
214
+ 0 1 2 3 4 5 6
215
+ '''
216
+
217
+ #曜日を用意
218
+ switchBtnFri = ""
219
+ switchBtnNoFri = ""
220
+ weekday = datetime.date.today().weekday()
221
+ #print(weekday)
222
+ if weekday == 4:
223
+ #print("今日は金曜です")
224
+ switchBtnFri = ""
225
+ switchBtnNoFri = "buttonNoFri.pack_forget()"
226
+ else:
227
+ #print("金曜以外")
228
+ switchBtnFri = "buttonFri.pack_forget()"
229
+ switchBtnNoFri = ""
230
+
231
+ #windowを表示
232
+ root = tk.Tk()
233
+
234
+ #金曜日のボタン
235
+ buttonFri = tk.Button(root, text='金曜日のボタン')
236
+ buttonFri.pack()
237
+ #buttonFri.pack_forget() # この文を直接書けばボタンは非表示になる
238
+ switchBtnFri # が、変数switchBtnFriにbuttonFri.pack_forget() を代入?してボタンを消したいが、文字列として代入されてしまう?
239
+ print(switchBtnFri) #コンソールにbuttonFri.pack_forget()が出力されるので、switchBtnFriにbuttonFri.pack_forget()は入っていそうなのに、ボタンが非表示になるわけではない→文字列として代入されているのかな?だから非表示にならないのかな?
240
+
241
+ #金曜日以外のボタン
242
+ buttonNoFri = tk.Button(root, text='金曜日以外のボタン')
243
+ buttonNoFri.pack()
244
+ switchBtnNoFri #この変数も同じ
245
+
246
+ root.mainloop()
247
+ ```
248
+
249
+
250
+
251
+
252
+
196
253
  ### 補足情報(FW/ツールのバージョンなど)
197
254
  OS windows10
198
255
  Python 3.9