### 16.1.6.2 Packer

packer はTkのジオメトリ管理メカニズムの一つです。

ジオメトリマネジャは、複数のウィジェットの位置を、それぞれの ウィジェットを含むコンテナ - 共通のマスタ (master) からの 相対で指定するために使います。 やや扱いにくい placer (あまり使われないのでここでは取り上げ ません) と違い、packer は定性的な関係を表す指定子 - 上 (above)、 〜の左 (to the left of)、引き延ばし (filling) など - を受け取り、厳密な配置座標の決定を全て行ってくれます。

どんなマスタ ウィジェットでも、大きさは内部の "スレイブ (slave) ウィジェット" の大きさで決まります。packer は、スレイブウィジェットを pack 先のマスタウィジェット中のどこに配置するかを制御するために使われ ます。 望みのレイアウトを達成するには、ウィジェットをフレームにパックし、 そのフレームをまた別のフレームにパックできます。 さらに、一度パックを行うと、それ以後の設定変更に合わせて動的に 並べ方を調整します。

ジオメトリマネジャがウィジェットのジオメトリを確定するまで、 ウィジェットは表示されないので注意してください。 初心者のころにはよくジオメトリの確定を忘れてしまい、 ウィジェットを生成したのに何も表示されず驚くことになります。 ウィジェットは、(例えばpackerの`pack()`メソッドを適用して) ジオメトリを確定した後で初めて表示されます。

pack() メソッドは、キーワード引数つきで呼び出せます。キーワード引数 は、ウィジェットをコンテナ内のどこに表示するか、メインの アプリケーションウィンドウをリサイズしたときにウィジェットがどう 振舞うかを制御します。以下に例を示します:

        fred.pack()                     # デフォルトでは、side = "top"
        fred.pack(side = "left")
        fred.pack(expand = 1)