我有一个框架,使用grid_propagate()方法固定了大小。我想在此框架内居中。我该怎么办?
将其包装以填充所有方向。根据需要添加填充。
或者,使用可以使用相对或绝对定位的位置。您可以使用.5 / .5的相对x / y和“ 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()
[如果您想将小部件(如框架)居中放置在框架中,最简单的方法是通过.grid()
。如果使用.pack()
,由于pack()
具有side
关键字,最终会卡在其中一条边上。
如果使用.place()
,则您会被迫强迫外框的尺寸(通常不必这样做,但已经做过,所以这不是问题),因为[C0当像placed
或packed
小部件一样自动调整尺寸时,未检测到]小部件。我不确定为什么,但是就是这样。
因此,通常,将窗口小部件居中于框内的最佳方法是将窗口小部件gridded
放入帧中。 (grid
选项默认为CENTER。)然后,如果您希望能够调整外部框架的大小并使小部件保持居中,则需要允许外部框架的单元格扩展/增长。您可以通过sticky
etc命令执行此操作。因此,一个示例可能是:
.grid_rowconfigure()