首页 > 解决方案 > Tkinter 帧没有通过类似的打包参数同等扩展

问题描述

我正在尝试使用 tkinter 构建一个 UI,它使用 2 个框架将窗口分成 2 个部分,但是我无法让它们的宽度相等。

粗略的布局可视化: 粗略的布局可视化

我最初的方法是让 1 个边 = LEFT 的框架和 1 个边 = RIGHT 的框架,两个框架都有 fill = BOTH 和 expand = YES。当框架为空时,此方法工作得很好,但是当向它们添加小部件时,左框架变得比右框架宽。

左框架为红色,右框架为蓝色,表现如预期: 左框架为红色,右框架为蓝色,表现如预期。

不再工作(相同的包装): 不再工作(相同的包装)

使用的代码(没有菜单栏):

from tkinter import *
master = Tk()
master.geometry("500x500")

lframe = Frame(bg = 'red', relief = "raised", bd = 2)
rframe = Frame(bg = 'blue',relief = "raised", bd = 2)

# Set up for left frame
password_options = Listbox(lframe)
password_options.pack(side = "left", fill = 'both', expand = 1)

password_scrollbar = Scrollbar(lframe)
password_scrollbar.pack(side = 'left', anchor = 'w', fill = 'y', expand = 1)

# Set up for right frame
b = Button(rframe, text = "TEST")
b.pack(expand = 1, fill = 'both')

lframe.pack(side = "left", fill = "both", expand = 1)
rframe.pack(side = "right", fill = "both", expand = 1)
master.mainloop()

我认为添加小部件后框架的宽度仍然相等,但似乎并非如此。什么可能导致这种行为?

标签: python-3.xtkinter

解决方案


推荐阅读