Tkinterのクラス化として、一般的にFrameを継承した例がよく挙げられます。
私も過去にこの理由について質問したのですが、多くの回答は「機能をFrameという枠組み(箱)に入れて、機能を再利用することができる」というものでした。
仮にそれぞれの機能をもたせたクラスをApp1、App2として、1つのアプリケーションで使う場合は、下記のような書き方になるのでしょうか?
Python
1from tkinter import ttk 2import tkinter as tk 3 4class App1(tk.Frame): 5 def __init__(self, master): 6 super().__init__(master) # 継承した Frame の __init__() の呼び出し 7 button = ttk.Button(self, text = "Button1", command = lambda: print("Button1")) 8 button.grid() 9 10class App2(tk.Frame): 11 def __init__(self, master): 12 super().__init__(master) # 継承した Frame の __init__() の呼び出し 13 button = ttk.Button(self, text = "Button2", command = lambda: print("Button2")) 14 button.grid() 15 16 17if __name__ == "__main__": 18 root = tk.Tk() 19 root.geometry("400x300") 20 21 app1 = App1(root) 22 app1.grid() 23 24 app2 = App2(root) 25 app2.grid() 26 27 root.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/24 17:00