预期的tkinter包的问题

时间:2015-10-13 13:43:43

标签: python tkinter

有问题打包两个框架以获得如下定义的预期结果:

第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,但坚持如何获得所需的结果。

2 个答案:

答案 0 :(得分:0)

您唯一的问题是frame1需要将expand设置为False0

通过将其设置为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()