pythonのtkinterを使って、簡単なGUIを作ろうとしてます。
[main.py]
python
1import tkinter as tk 2import sub 3 4def call_sub(event): 5 sub.main() 6 7root = tk.Tk() 8root.geometry("1000x600") # サイズ 9 10btn_sub = tk.Button(root, text = "SUB") 11btn_sub.bind("<ButtonRelease-1>", call_sub) 12btn_sub.pack() 13 14root.mainloop()
[sub.py]
python
1import tkinter as tk 2from tkinter import messagebox 3 4def mess(event): 5 messagebox.showinfo("あいさつ", "おはようございます") 6 7def main(): 8 root1 = tk.Toplevel() 9 root1.geometry("800x500") 10 11 btn = tk.Button(root1, text = "メッセージ") 12 btn.bind("<ButtonRelease-1>", mess) 13 btn.pack() 14 15 root1.grid() 16 17if __name__ == "__main__": 18 main()
というコードを書いております。
main.pyからsub.pyを呼び出し、sub.pyの中でmessageboxを呼び出しているので、messeageboxの親はsub.pyのroot1だと考えていました。
しかし実際に実行してみると、messageboxの親はmain.pyのrootになっているようで、messageboxを呼び出している最中にsub.pyを閉じてもmessageboxは閉じません。
messageboxの代わりにsimpledialogをimportして実行してみても、やはり親はmain.pyに紐付けられていました。
Toplevel()の親指定の方法などは発見したのですが、messageboxやsimpledialogの親指定の方法は見つけることができませんでした。
このmessageboxの親をsub.pyにするにはどうしたらよろしいでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 00:12