
下記のサンプルのようにcheckにチェックを付け、command(show_selected)を呼び出した際に、時間のかかる処理を実行中であることを label などに表示したいのですが、'実行中'が表示されず、完了後に'実行終了'が表示されます。
'実行中'を表示するようにしたいのですが、ヒントをいただけないでしょうか。
------------------------
import tkinter
def show_selected():
label["text"] = '実行中'
print('チェックボタンを実行します') # 時間のかかる処理を想定しています。
label["text"] = '実行終了'
root = tkinter.Tk()
var = tkinter.IntVar(root)
check = tkinter.Checkbutton(
root,
variable=var,
command=show_selected,
)
check.pack()
label = tkinter.Label(root)
label.pack()
root.mainloop()
-----------------------
No.3
- 回答日時:
ひとつのやり方としては、ラベル更新してから
root.afterでタイマーイベントを登録して
イベントで残りの処理を実行する。
シングルスレッドでできるので比較的簡単。
No.2
- 回答日時:
「labelの表示」は、どこで行われていますか。
print('チェックボタンを実行します') の処理は重くありません。
マルチスレッドでなくてよいならば、
①'実行中'を表示する。
②本体の処理を行う。
③'実行終了'を表示する。
とすればよいと思います。
①から③までの間は、フリーズみたいになります(実際は動いていても画面が動かない)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
プログラミングを学べる!?進化している子どものおもちゃについて専門家に聞いた!
プログラミングを学べるレゴブロックがあることはご存知だろうか。レゴに限らず最近のおもちゃには、プログラミングの要素がどんどん取り入れられているようだ。「教えて!goo」にも、「プログラミングを学べる子供...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
これってパソコンの最適化が完...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
Excel VBA ステップインが途中...
-
Excel(エクセル) VBA プロシー...
-
Access の VBA 実行中に他の操...
-
エクセル フォルダの画像を画...
-
ExcelのVBAが特定のPC上でのみ...
-
[VBScript]ファイルの削除
-
「読み取りと実行」と「読み取...
-
16進数の変換処理
-
SHELLコマンドがうまく動かない...
-
バッチファイルが不正終了して...
-
Windowsアプリケーションをメモ...
-
vbscriptを用いて他のVBSファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
これってパソコンの最適化が完...
-
Windows System32 Security Hea...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
VBscriptが起動しない?
-
exeファイルを実行するとコマン...
-
Access の VBA 実行中に他の操...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
ネットワーク名が見つかりません
-
pythonスクリプトを管理者権限...
-
エクセル フォルダの画像を画...
-
VBScriptでコマンドプロンプト...
-
Excel VBA ステップインが途中...
-
WSH.Run の処理内容をテキスト...
-
バッチファイルが不正終了して...
-
ExcelのVBAが特定のPC上でのみ...
おすすめ情報
show_selected が呼び出されたときに
label["text"] = '実行中'
は実行されても、labelの表示は変わらず、
label["text"] = '実行終了'
が実行された場合にlabelの表示が「実行終了」になるのはなぜなんでしょうか。
ステップインで確認しても、label["text"] = '実行中' ではlabelの表示が変わりません。
print('チェックボタンを実行します') の処理が重いかどうかは関係ない気がします。