### 16.1.6.2 Packer

packerはTkのジオメトリマネジメント・メカニズムの一つです。the Packer class interfaceも参照してくだい。

ジオメトリマネージャは、コンテナ - ウィジェットが共有するマスター(上位のウィジェット) - 内部のウィジェットの相対的な位置を指定するために用いられます。もっと扱いにくいplacer(packerより一般的に使われておらず、ここで取り上げません)とは対照的に、packerは定性的な関係の指定を受け取ります - 上、〜の左、引き延ばしなど - そして、あなたのために厳密な座標位置が決まるようにすべてを調整します。

どんなマスターウィジェットでもその大きさは内部の"スレイブウィジェット"の大きさによって決まります。スレイブウィジェットがpackされるマスター内部で表示される場所を制御するためにpackerが用いられます。だいたいあなたが望んだ通りのレイアウトになるように、ウィジェットをフレーム内部へ、さらに、フレームは別のフレーム内部へpackすることがきます。さらに、一度packされると、追加の設定変更に合わせるために並べ方は動的に調整されます。

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

pack()メソッドを呼び出す時に、ウィジェットがそのコンテナ内部で表示される場所とメイン・アプリケーション・ウィンドウのサイズが変更されたときにどうするかを制御するためのキーワードオプション/値の組を指定することができます。いくつか例を示します:

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