当添加小部件时,Tkinter框架会调整大小

问题描述 投票:0回答:2

我刚开始使用Tkinter,但是我遇到一个奇怪的问题,基本上,我希望我的应用看起来像这样

enter image description here

因此,我创建了两个Frames,一个用于菜单项,另一个用于显示内容。奇怪的是,当我使用给定的宽度和高度初始化框架时,程序似乎按预期工作,但是当我将一些小部件放入窗口调整大小时,看起来像这样]

enter image description here

有人可以向我解释这种奇怪的行为吗?我想念什么?另外,我想提到的是,当我将按钮添加到菜单框架时,宽度会更改为适合按钮的宽度,而不是相反,就像我想要的那样]

app = tk.Tk()
app.resizable(False, False)

menu_frame_users = tk.Frame(app, width=200, background='red')
content_frame = tk.Frame(app, height=600, width=600, background='blue')


hello_label = tk.Label(menu_frame_users, text='Hello, User').grid(column=0, row=0, sticky='we')
view_profile_button = tk.Button(menu_frame_users, text="View Profile").grid(column=0, row=1, sticky='we')
invoices_button = tk.Button(menu_frame_users, text="Invoices").grid(column=0, row=2, sticky='we')
bookings_button = tk.Button(menu_frame_users, text="View bookings").grid(column=0, row=3, sticky='we')
tools_button = tk.Button(menu_frame_users, text="Search tools").grid(column=0, row=4, sticky='we')

test_label = tk.Label(content_frame, text='View profile')
test_label.grid(column=0, row=0, sticky='we')


menu_frame_users.grid(column=0, row=0, sticky='nswe')
content_frame.grid(column=1, row=0, sticky='nswe')

我刚开始使用Tkinter,我面临一个奇怪的问题,基本上,我希望我的应用看起来像这样,因此,为了做到这一点,我创建了两个框架,一个用于菜单项,另一个用于框架...

python tkinter
2个回答
1
投票

除非您增加行和列的权重以使其扩展,否则tkinter中的框架将仅与其中包含的小部件一样大。


0
投票

我不确定我是否完全理解这个问题,但这也许会有所帮助。注意为了示例,我删除了显式框架尺寸。

© www.soinside.com 2019 - 2024. All rights reserved.