0

次のコードで赤いフレームが表示されないのはなぜですか?

import Tkinter

root = Tkinter.Tk()
root.geometry("220x300")

container_frame = Tkinter.Frame(background = "red", width = 100, height = 120)
container_frame.pack()

widget_button = Tkinter.Button(master = container_frame)
widget_button.pack()

root.mainloop()
4

2 に答える 2

5

ボタンとフレームの間にパディングがないため、表示されません。デフォルトでは、コンテナはその内容の周りに「収まるように縮小」します。フレームに明示的な幅または高さを追加しても、子にぴったり合うように縮小されます。

探している効果を達成する方法はいくつかありますが、どのような効果が必要かは明確ではありません。この「縮小して合わせる」動作をオフにすることができます(を使用container_frame.pack_propagate(False))。または、ウィジェットの周囲にパディングを追加できます。または、フレームのコンテナに背景を適用することもできます。または、フレームをパックしてそのコンテナ(メインウィンドウ)を埋めてから、含まれているウィンドウがフレームを露出するのに十分な大きさであることを確認することもできます。

その最後の提案の例として、1行を次のように変更できます。

container_frame.pack(side="top", fill="both", expand=True)
于 2012-04-22T12:57:34.737 に答える
0

次のように変更した場合:

widget_button.pack(padx=10, pady=10)

widget_button.pack(...)を呼び出すと、フレームのサイズが変更されていることがわかります。

ここに画像の説明を入力してください

于 2012-04-22T11:00:42.967 に答える