tkinter(pythonライブラリ)を使って、ラベルの背景色や文字列を変更する場合において
躓いたことと原因と解決方法を解説
状況
やりたいこと
ラベルの背景色と文字を処理の状況によって変更する
状況1 => 背景色:aquarmarine2、文字列:待機
状況2 => 背景色:OrangeRed1、文字列:検索中
状況3 => 背景色:aquamarine2、文字列:完了
状況1 => 〇 できた
状況2 => × できなかった
状況3 => 〇 できた
状況1 → 状況2 への変更はできなかったが、その後、状況3 に変更できた
コード(VSCode)
待機中(処理開始前)
label2_2 = tk.Label(frame2_2,text="待機中",width=10,height=3,bg="aquamarine2",font=f1)
処理中
label2_2['bg']='OrangeRed1'
label2_2['text']='検索中'
完了
label2_2['bg']='aquamarine2'
label2_2['text']='処理終了'
原因
状況1 → 状況2 へ変更した後、label2_2 の内容が更新されていなかった
状況3 は、処理が終わった後、label2_2 の内容が自動更新された
処理開始直前に、label2_2 の内容を更新させる必要がある
解決方法
コード(VSCode)
待機中(処理開始前)
label2_2 = tk.Label(frame2_2,text="待機中",width=10,height=3,bg='aquamarine2',font=f1)
処理中
label2_2.update()
label2_2['bg']='OrangeRed1'
label2_2['text']='検索中'
完了
label2_2['aquamarine2']
label2_2['text']='処理中'
処理開始の直前に、
label2_2.update()
を追加する
コメント