python tkinter ラベルの背景色と文字列が変更できない

python tkinter

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()
を追加する

コメント

この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
タイトルとURLをコピーしました