pythonでデスクトップアプリを作っています。
ボタンを押すとサブウィンドウを起動させるサンプルアプリを作りました。
このときメインウィンドウのボタンを押すと押した分だけ、サブウィンドウがいくつも起動します。
やりたい事としては、サブウィンドウを起動させたときはメインウィンドウの操作を無効化したいです。
調べたところによるとボタンに state="disable" を設定すると無効化できると知ったのですが、どうやらbindで設定した関数は無効化できないようです。それにボタン以外にもいろいろなウィジットがある場合、メインウインドウすべてを無効化するような方法はあるのでしょうか?
以下、サンプルコードです。ご教授いただけたら幸いです。
import tkinter as tk root = tk.Tk() def sub_window(event): sub_window = tk.Toplevel() # ウインドウサイズの固定 sub_window.resizable(width = False, height = False) # タイトル sub_window.title("SUB-WINDOW") # ボタン btn = tk.Button(sub_window, width=30, height=3,text="CLOSE") btn.pack(padx=50, pady=50) btn.bind("<1>", lambda event: sub_window.destroy()) # ウインドウサイズの固定 root.resizable(width = False, height = False) # タイトル root.title("MAIN-WINDOW") # ボタン main_btn = tk.Button(root, width=30, height=3,text="SUB-WINDOW") main_btn.pack(padx=50, pady=50) main_btn.bind("<1>", lambda event: sub_window(event)) root.mainloop() コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/20 21:23