2010-11-21 79 views

回答

6

打包它填充所有方向。根據需要添加填充。

或者,使用讓你使用相對或絕對定位的地方。您可以使用相對x/y的.5/.5和「c」(中心)的錨點。

import Tkinter as tk 

root=tk.Tk() 
f1 = tk.Frame(width=200, height=200, background="red") 
f2 = tk.Frame(width=100, height=100, background="blue") 

f1.pack(fill="both", expand=True, padx=20, pady=20) 
f2.place(in_=f1, anchor="c", relx=.5, rely=.5) 

root.mainloop() 
+0

它有點混淆,因爲f1和f2都沒有聲明父項。 f1如何知道在root中打包?另外,2個不同的幾何管理器正在混合使用。這被警告到處都是不好的做法。然而,它的工作,並解決了我一直堅持了幾個小時的問題。所以+1! – wsaleem 2015-09-29 18:31:41

+1

@wsaleem:除根窗口之外的每個窗口都必須有一個父窗口。當窗口小部件沒有明確指定父窗口時,根窗口是默認窗口。至於混合包和地點(和/或網格):在整個應用程序中,這是完全正確的,甚至是更可取的。你不能將它們混合在同一個包含窗口中。在這種情況下,'f1'由根窗口管理,'f2'由'f1'管理(因爲'in_'參數。 – 2015-09-29 19:02:54