ホームページ >バックエンド開発 >Python チュートリアル >Tkinter のグリッド ジオメトリで重みはどのように機能しますか?
Tkinter は、ウィンドウ内でウィジェットを整理するための包括的なグリッド ジオメトリ マネージャーを提供します。グリッドの重要な属性の 1 つは「重み」オプションです。これは、コンテナ内に余剰スペースがある場合に列と行をどのように拡張するかを制御します。
デフォルトでは、各グリッド セルの重みは 0 であり、重みが 0 であることを示します。初期サイズを超えて成長することはありません。ただし、行または列にゼロ以外の重みを割り当てると、余分なスペースが利用可能になった場合にその拡張がトリガーされます。
実際の重みのデモ
次のコードを考えてみましょう。
import tkinter as tk root = tk.Tk() root.geometry("200x100") f1 = tk.Frame(root, background="bisque", width=10, height=100) f2 = tk.Frame(root, background="pink", width=10, height=100) f1.grid(row=0, column=0, sticky="nsew") f2.grid(row=0, column=1, sticky="nsew") root.grid_columnconfigure(0, weight=0) root.grid_columnconfigure(1, weight=0) root.mainloop()
このコードは、f1 と f2 の 2 つのフレームが並んで配置されたウィンドウを作成します。列にウェイトが適用されないため、利用可能なスペースは未使用のままになります。
import tkinter as tk root = tk.Tk() root.geometry("200x100") f1 = tk.Frame(root, background="bisque", width=10, height=100) f2 = tk.Frame(root, background="pink", width=10, height=100) f1.grid(row=0, column=0, sticky="nsew") f2.grid(row=0, column=1, sticky="nsew") root.grid_columnconfigure(0, weight=1) root.mainloop()
最初の列にウェイト 1 を追加すると、ウィンドウが拡大されたときに余分なスペースが最初の列に分配されます。
import tkinter as tk root = tk.Tk() root.geometry("200x100") f1 = tk.Frame(root, background="bisque", width=10, height=100) f2 = tk.Frame(root, background="pink", width=10, height=100) f1.grid(row=0, column=0, sticky="nsew") f2.grid(row=0, column=1, sticky="nsew") root.grid_columnconfigure(0, weight=1) root.grid_columnconfigure(1, weight=3) root.mainloop()
列に異なる重みを割り当てると、余分なスペースを比例配分できます。この例では、2 番目の列の重みは最初の列の 3 倍で、比率は 1:3 になります。
重みの力は、ウィンドウのサイズ変更に対する動的応答にあります。ウィンドウが拡大すると、ウィジェットは相対的な比率を維持しながら、使用可能なスペースに適応します。この柔軟性は、応答性が高く適応性のあるグラフィカル ユーザー インターフェイスを作成するために非常に重要です。
以上がTkinter のグリッド ジオメトリで重みはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。