有问题打包两个框架以获得如下定义的预期结果:
第1帧宽度为150,在Y值上缩放,蓝色。 第2帧在X和Y上缩放,红色。
因此,当调整窗口大小时,帧1保持其x位置,帧2将缩放。
如下图所示: Expected Outcome
所以这是使用的代码:
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)
虽然它产生了这个:Actual Outcome
对此的要求是我仍然需要使用pack,但坚持如何获得所需的结果。
答案 0 :(得分:0)
您唯一的问题是frame1
需要将expand
设置为False
或0
。
通过将其设置为1
,您要求Tkinter扩展给定左框架的区域。因为你只需要填写" y"方向,左侧的框架即使已经分配了也不会填满该额外区域,这就是您看到左侧和右侧之间的空白区域的原因。
答案 1 :(得分:-1)
相当简单,如果你希望它们并排堆叠,你需要将它们从同一侧堆叠起来,而第一帧不需要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()