質問編集履歴

2

2021/06/30 20:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -388,7 +388,7 @@
388
388
 
389
389
  まず、Pythonのtkinterで二つのボタンを作成し、
390
390
 
391
- 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにしと思いましたが、これもうまくいきませんでした
391
+ 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにしようと思いましたが、これもうまくいきませんでした
392
392
 
393
393
 
394
394
 
@@ -396,7 +396,7 @@
396
396
 
397
397
  それぞれのボタンを条件によって、buttonFri.pack_forget()で非表示にしたいので、
398
398
 
399
- 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたい
399
+ 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたらうまくくかと思ったのですが、だめでした
400
400
 
401
401
  単純に=で入れたら(たぶん)文字列になってしまって、buttonFri.pack_forget()されない
402
402
 

1

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

2021/06/30 20:57

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -382,6 +382,120 @@
382
382
 
383
383
 
384
384
 
385
+ ###追記・試したこと
386
+
387
+
388
+
389
+ まず、Pythonのtkinterで二つのボタンを作成し、
390
+
391
+ 片方は金曜日のみ表示されるボタン、もう片方は金曜日以外の日にのみ表示されるボタンにし用と思いましたが、これもうまくいきませんでした
392
+
393
+
394
+
395
+ calenderとdatetimeを使って、ifで、金曜日かそれ以外かを判断する
396
+
397
+ それぞれのボタンを条件によって、buttonFri.pack_forget()で非表示にしたいので、
398
+
399
+ 変数switchBtnFri、switchBtnNoFriを作って、そこにbuttonFri.pack_forget()の処理を入れたい
400
+
401
+ 単純に=で入れたら(たぶん)文字列になってしまって、buttonFri.pack_forget()されない
402
+
403
+ どうしたらいいでしょうか?
404
+
405
+
406
+
407
+ ```test.py
408
+
409
+
410
+
411
+ import tkinter as tk
412
+
413
+ import calendar
414
+
415
+ import datetime
416
+
417
+
418
+
419
+ '''
420
+
421
+ 曜日判定
422
+
423
+
424
+
425
+ 月 火 水 木 金 土 日
426
+
427
+ 0 1 2 3 4 5 6
428
+
429
+ '''
430
+
431
+
432
+
433
+ #曜日を用意
434
+
435
+ switchBtnFri = ""
436
+
437
+ switchBtnNoFri = ""
438
+
439
+ weekday = datetime.date.today().weekday()
440
+
441
+ #print(weekday)
442
+
443
+ if weekday == 4:
444
+
445
+ #print("今日は金曜です")
446
+
447
+ switchBtnFri = ""
448
+
449
+ switchBtnNoFri = "buttonNoFri.pack_forget()"
450
+
451
+ else:
452
+
453
+ #print("金曜以外")
454
+
455
+ switchBtnFri = "buttonFri.pack_forget()"
456
+
457
+ switchBtnNoFri = ""
458
+
459
+
460
+
461
+ #windowを表示
462
+
463
+ root = tk.Tk()
464
+
465
+
466
+
467
+ #金曜日のボタン
468
+
469
+ buttonFri = tk.Button(root, text='金曜日のボタン')
470
+
471
+ buttonFri.pack()
472
+
473
+ #buttonFri.pack_forget() # この文を直接書けばボタンは非表示になる
474
+
475
+ switchBtnFri # が、変数switchBtnFriにbuttonFri.pack_forget() を代入?してボタンを消したいが、文字列として代入されてしまう?
476
+
477
+ print(switchBtnFri) #コンソールにbuttonFri.pack_forget()が出力されるので、switchBtnFriにbuttonFri.pack_forget()は入っていそうなのに、ボタンが非表示になるわけではない→文字列として代入されているのかな?だから非表示にならないのかな?
478
+
479
+
480
+
481
+ #金曜日以外のボタン
482
+
483
+ buttonNoFri = tk.Button(root, text='金曜日以外のボタン')
484
+
485
+ buttonNoFri.pack()
486
+
487
+ switchBtnNoFri #この変数も同じ
488
+
489
+
490
+
491
+ root.mainloop()
492
+
493
+ ```
494
+
495
+
496
+
497
+
498
+
385
499
 
386
500
 
387
501