2010-10-19 37 views

回答

18

grid用於佈置網格中的小部件。另一個答案是「覆蓋圖」,這有點不恰當。它不覆蓋任何東西,它只是沿着行和列邊界排列小部件。它非常適合創建表格和其他結構化佈局類型。

pack沿着盒子的側面放置東西。它擅長於在一行或一列中進行佈局(認爲工具欄或對話框中的按鈕行)。它對於非常簡單的佈局也很有用,例如左側的導航器和右側的主工作區。它可以用來創建非常複雜的佈局,但它會變得棘手,直到你完全理解包裝算法。

您不能同時使用具有共同父項的小部件的網格和包。你的應用程序可能會工作,但更有可能進入無限循環,因爲每個管理器都試圖佈置小部件,然後其他人會通知小部件更改大小並嘗試調整等。

第三個管理是place。 Place非常適合做絕對定位(例如:在給定的x/y處放置小部件)或相對(例如:將小部件放置在某個其他小部件的右邊緣)。

儘管無法在同一個容器(容器通常是一個框架)中混合使用網格和包裝,但您可以使用在單個應用程序中同時使用網格和包裝。這是非常非常普遍的,因爲每個人都有優點和缺點。我經常使用這兩種方法。