Tkinter 框架无法正确居中 (Python)

Tkinter Frame Won't Center Properly (Python)

我在big_frame里面有small_frame(黑色填充)。我已经使用 place() 方法通过将 relx 设置为 0.5 来使 small_frame 居中,但它显然仍然向右倾斜。

按设置坐标放置也不起作用,因为它向左或向右倾斜。

from tkinter import *

root = Tk()
root.geometry('950x587')

big_frame = LabelFrame(root, width=210, height=291)
big_frame.grid(row=0, column=0, padx=10, pady=10)

small_frame = Frame(big_frame, width=198, height=123, bg='black')
small_frame.place(relx=0.5, y=64, anchor=CENTER)  # x=103 is it's coordinate equivalent

mainloop()

测量到像素。 small-frame 位于 big-frame 的绝对边界之间。它被完美地放置了。

您可能会有点迷惑,因为 big-frame 本身不是对称的; big-frame 上有一条 1 像素粗的白线,它位于左侧较深灰色线的内侧,但在右侧较深的灰色线外侧。这条白线是 big-frame 尺寸的一部分。您可以说 big-frame 本身通过视错觉导致了“倾斜”。

坦率地说,这是1个像素的差异。如果这是一个严重的问题,请以某种方式更改 big-frame 的边框,或将 big-framewidth 增加 1 个像素。