如何使用pack创建左、右和中心框架?



我现在有一个左右框架,并尝试创建一个中心框架,但问题是左框架占用了更多的空间,并将中心框架推到右边,所以我放进去的任何小部件实际上都没有居中。有什么办法能让它成功吗?

self.leftside = ttk.Frame(self)
self.leftside.pack(expand=True, fill=BOTH, side=LEFT, anchor=W)
self.center = ttk.Frame(self)
self.center.pack(expand=True, fill=BOTH, side=LEFT, anchor=CENTER)
self.rightside = ttk.Frame(self)
self.rightside.pack(expand=True, fill=BOTH, side=RIGHT, anchor=E)

如果您想要保证中心部分显示居中,则grid将是比pack更好的选择,因为您可以配置grid来强制其他两列具有相同的大小,并使中心区域增大或缩小以填充其余空间。

它看起来像这样:

self.leftside.grid(row=0, column=0, sticky="nsew")
self.rightside.grid(row=0, column=2, sticky="nsew")
self.center.grid(row=0, column=1, sticky="nsew")
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure((0,2), uniform="equal")
self.grid_columnconfigure(1, weight=1)

最新更新