2
grid_propagate()メソッドを使用してサイズを固定したフレームがあります。このフレーム内にフレームを配置したいと思います。これについてどうすればいいですか?Tkinterのフレーム内にフレームを配置するにはどうすればよいですか?
grid_propagate()メソッドを使用してサイズを固定したフレームがあります。このフレーム内にフレームを配置したいと思います。これについてどうすればいいですか?Tkinterのフレーム内にフレームを配置するにはどうすればよいですか?
すべての方向で入力してください。必要に応じて埋め込みを追加します。
または、相対または絶対位置を使用できる場所を使用します。相対x/yは.5/.5、アンカーは "c"(中央)を使用できます。
import Tkinter as tk
root=tk.Tk()
f1 = tk.Frame(width=200, height=200, background="red")
f2 = tk.Frame(width=100, height=100, background="blue")
f1.pack(fill="both", expand=True, padx=20, pady=20)
f2.place(in_=f1, anchor="c", relx=.5, rely=.5)
root.mainloop()
f1もf2も親を宣言していないので、やや混乱します。 f1はルートに詰め込まれることをどのように知っていますか?また、2つのジオメトリ・マネージャーが混在しています。これはどこでも悪い習慣として警告されています。しかし、それは動作し、私が何時間も抱えていた問題を解決します。だから+1! – wsaleem
@wsaleem:ルートウィンドウ以外のすべてのウィンドウには親が必要です。ルートウィンドウは、ウィジェットが明示的に親を指定していない場合のデフォルトです。パックと場所(および/またはグリッド)を混合することについては、アプリケーション全体で、それはまったく正しいことです。同じウィンドウを含むウィンドウにそれらを混在させることはできません。この場合、 'f1'はルートウィンドウによって管理され、' f2'は 'in1'パラメータのために' f1'によって管理されます。 –