その内容に合わせて縮小するからTkinterのフレームを停止する方法?
質問
これは私に迷惑を与えているコードです。
f = Frame(root, width=1000, bg="blue")
f.pack(fill=X, expand=True)
l = Label(f, text="hi", width=10, bg="red", fg="white")
l.pack()
私はラベル付きの行をコメントアウトした場合は、、フレームは、右の幅で表示されます。しかし、ラベルを追加するダウンラベルのサイズにフレームを縮小するようです。起きてからそれを防止するための方法はありますか?
解決
デフォルトでは、TKフレームはをその内容に合うように縮小または成長の、あなたは時間の99%を望むものです。この機能を説明する用語は、「ジオメトリの伝播」です。オンまたはオフにすると、ジオメトリの伝播を有効にするコマンドではありpack
(および)を使用。
あなたはパックを使用しているので、構文は以下のようになります:
f.pack_propagate(0)
または多分root.pack_propagate(0)
、あなたが実際に影響を与えるしたいウィジェット(複数可)に依存。あなたは、フレームの高さを与えていないためしかし、それはあなたがまだ内部のウィジェットが表示されないことがありので、デフォルトの高さは1つのピクセルであるのです。あなたが何をしたいの完全な効果を得るために、あなたは含むフレームに幅と高さの両方を提供する必要があります。
言われていること、時間の大半は、あなたはTkinterのサイズを計算させてください。あなたは、解像度の変化によく反応しません、あなたのGUIオフジオメトリ伝播をオンにすると、フォントの変更は、などのTkinterのジオメトリマネージャ(pack
、place
とgrid
は)非常に強力です。その力を活用することを学びます。
所属していません StackOverflow