>>15
tkinterのボタンを押した時に、ボタンが押し込まれたような表示になるのは、ButtonPressイベントが発生したときのデフォルトの挙動です。ButtonPressイベントは、マウスのボタンが押されたときに発生するイベントであり、ButtonReleaseイベントと共にボタンのクリックイベントを表します。
通常、ボタンが押し込まれたような表示になるには、ButtonPressイベントでその状態を設定し、ButtonReleaseイベントで解除する必要があります。しかし、commandオプションを使う場合は、ButtonPressイベントで何かしらの処理を行うことができません。
そこで、ButtonPressイベントで特定の処理を行い、その後にcommandオプションで指定した関数を呼び出すことで、ボタンが押し込まれたような表示にすることができます。具体的には、以下のようなコードになります。
def test_func(event):
if event.num == 1: # 左クリックの場合のみ行う処理
btnExeAll.config(relief=tk.SUNKEN) # ボタンを押し込んだ表示にする
# ②右クリックの場合のみ行う処理
# ①②共通の処理
btnExeAll.bind('<ButtonPress>', test_func)
btnExeAll.config(command=lambda: None) # commandオプションを無効化する
このコードでは、ButtonPressイベントで左クリックの場合にボタンを押し込んだ表示にし、右クリックの場合には何も処理を行いません。また、commandオプションを無効化するために、空のlambda関数を指定しています。これにより、ButtonPressイベントでの処理とcommandオプションで指定した関数が重複して実行されることを防ぐことができます。
なお、ボタンを押し込んだ表示を解除するには、ButtonReleaseイベントでボタンの状態を元に戻す必要があります。以下のように修正することで、ボタンを押した時にボタンが押し込まれた表示になり、離した時に元の表示に戻るようになります。
def test_func(event):
if event.num == 1: # 左クリックの場合のみ行う処理
btnExeAll.config(relief=tk.SUNKEN) # ボタンを押し込んだ表示にする
探検
Pythonのお勉強 Part70
■ このスレッドは過去ログ倉庫に格納されています
29デフォルトの名無しさん (ワッチョイ d610-mIEw)
2023/03/15(水) 00:00:32.28ID:114k6lJ80■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 人生に飽きた
- 【画像】自分がオッサンか若者か、5秒で判断できる画像がこれらしい [977261419]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- お
