Python tkinter pack不';不要在整个地区扩张

Python tkinter pack不';不要在整个地区扩张,python,tkinter,Python,Tkinter,包装两个框架以获得如下定义的预期结果时出现问题: 第1帧的宽度为150,比例为Y值,颜色为蓝色。 第2帧在X和Y上缩放,颜色为红色 因此,调整窗口大小时,帧1保持其x位置,帧2将缩放 如下图所示: 这就是使用的代码: import tkinter as tk frame1 = tk.Frame(bg = 'blue', width= 150, height = 150) frame2 = tk.Frame(bg = 'red') frame1.pack(fill = tk.Y, expan

包装两个框架以获得如下定义的预期结果时出现问题:

第1帧的宽度为150,比例为Y值,颜色为蓝色。 第2帧在X和Y上缩放,颜色为红色

因此,调整窗口大小时,帧1保持其x位置,帧2将缩放

如下图所示:

这就是使用的代码:

import tkinter as tk


frame1 = tk.Frame(bg = 'blue', width= 150, height = 150)
frame2 = tk.Frame(bg = 'red')
frame1.pack(fill = tk.Y, expand = 1, anchor = tk.W, side = tk.LEFT)
frame2.pack_propagate(True) 
frame2.pack(fill = tk.BOTH, expand = 1, anchor = tk.E, side = tk.RIGHT)
尽管它产生了这样的结果:


这方面的一个要求是,我仍然需要使用pack,但仍停留在如何获得所需的结果上。

相当简单,如果您希望它们并排堆叠,则需要保持它们从同一侧堆叠,并且第一帧不需要
expand=1

请尝试以下操作:

import tkinter as tk

root = tk.Tk()

frame1 = tk.Frame(bg = 'blue', width= 150, height = 150)
frame2 = tk.Frame(bg = 'red')
frame1.pack(fill = tk.Y, anchor = tk.W, side = tk.LEFT)
frame2.pack_propagate(True) 
frame2.pack(fill = tk.BOTH, expand = 1, anchor = tk.E, side = tk.LEFT)

root.mainloop()

您唯一的问题是
frame1
需要
expand
设置为
False
0


通过将其设置为
1
,您要求Tkinter扩展给定给左帧的区域。因为你只在“Y”方向填充它,所以左边的框架即使它已经被分配,也不会填充额外的区域,这就是为什么你看到左边和右边之间的空白。p> FWIW,你不需要把它们从同一边堆起来。