TkのFrameはウィンドウじゃなかった
2008.03.05 Wednesday 19:21
Tkの"Frame"の意味を誤解していた.Frameはウィンドウじゃなくて,他のGUIで言うところのPanelみたいな物だった.つまりウィンドウ上にあって他のウィジェットを乗せる(見えない)トレーみたいなもの.
Tkinterのサンプルプログラムで,
最初は root = Tk() で始まっていて,次にウィンドウ要素をクラスにするときFrame()が出てくる物がある.このFrame()がウィンドウだとばかり思っていたので,frame = Frame(root) をクラスにするときはrootを使わずに明示的にウィンドウを作るんだとばかり思っていた.
だからframe.pack()するときexpand=Trueとfill=BOTHを付けないと,その後のウィジェットにいくらexpandを付けてもframeがウィンドウに追従しないのでサイズが変わらない.
最初は root = Tk() で始まっていて,次にウィンドウ要素をクラスにするときFrame()が出てくる物がある.このFrame()がウィンドウだとばかり思っていたので,frame = Frame(root) をクラスにするときはrootを使わずに明示的にウィンドウを作るんだとばかり思っていた.
だからframe.pack()するときexpand=Trueとfill=BOTHを付けないと,その後のウィジェットにいくらexpandを付けてもframeがウィンドウに追従しないのでサイズが変わらない.
Comments