Python 框架未与包装堆叠()

Python 框架未与包装堆叠(),python,python-2.7,user-interface,tkinter,Python,Python 2.7,User Interface,Tkinter,我正在尝试创建一个程序,其中用户通过“下一步”和“上一步”按钮浏览屏幕。编辑所选答案的代码我生成了以下代码: 将Tkinter作为tk导入 将tkFont作为tkFont导入 def cancel(): root.destroy() def disable_事件(): 通过 #设置父(主/根)窗口 root=tk.tk() 根标题(“某些标题”) 根部几何形状('700x500')#宽度x高度 root.resizable(0,0)#使root不可压缩并强制使用“取消”按钮 协议(“WM_删除_

我正在尝试创建一个程序,其中用户通过“下一步”和“上一步”按钮浏览屏幕。编辑所选答案的代码我生成了以下代码:

将Tkinter作为tk导入
将tkFont作为tkFont导入
def cancel():
root.destroy()
def disable_事件():
通过
#设置父(主/根)窗口
root=tk.tk()
根标题(“某些标题”)
根部几何形状('700x500')#宽度x高度
root.resizable(0,0)#使root不可压缩并强制使用“取消”按钮
协议(“WM_删除_窗口”,禁用_事件)
类InstallerApp(tk.tk):
定义初始化(self,*args,**kwargs):
self.title\u font=tkfont.font(family='Helvetica',size=18)
容器=tk.Frame(根)
container.pack(side=“top”,fill=“both”,expand=True)
self.frames={}
对于F in(简介,第一页):
页面名称=F.\u名称__
帧=F(父级=容器,控制器=自身)
self.frames[页面名称]=框架
自我展示框架(“简介”)
def显示框(自身,页面名称):
frame=self.frames[页面名称]
frame.tkraise()
课程简介(传统框架):
定义初始化(自、父、控制器):
Intro=tk.Frame.\uuuuu init\uuuuuuuu(自我,父)
self.controller=控制器
leftFrame=tk.Frame(简介,高度=500,宽度=250,背景=“#000000”)
leftFrame.pack(side=“left”)
中间框架=传统框架(简介,高度=500,宽度=5)
中框包装(侧边=“左”)
右框架=传统框架(简介,高度=500,宽度=450,背景=“#FFFFFF”)
按钮框架=传统框架(简介,高度=35,宽度=450,背景=“#FFFFFF”)
nextButton=tk.Button(buttonFrame,width=10,text=“Next>”,command=lambda:controller.show_frame(“首页”)).grid(行=0,列=0)
div3=tk.Frame(buttonFrame,bg=“#FFFFFF”,width=10).网格(行=0,列=1)
cancelButton=tk.Button(buttonFrame,text=“Cancel”,width=10,command=Cancel).grid(行=0,列=2)
buttonFrame.pack\u传播(False)
按钮框架包装(侧面=“底部”)
#由包管理的rightFrame的其他子窗口小部件
rightFrame.pack_传播(False)
rightFrame.pack_-forget()
右框包装(侧边=“右”)
类首页(tk.Frame):
#与“previousButton”相同的代码
然而,当我执行代码时,我注意到即使调用了
show_frame
函数,第一页也不会出现,如果我调整主窗口的大小,它会从简介后面逐渐出现。当我运行原始代码时,它工作得非常好

问题是因为我使用的是
pack()
管理器,而原始代码使用的是
grid()
还是什么?有人能提供一个示例代码吗


注:我见过其他问题,但它们都使用
grid()
。我使用的是Python2.7。

您不能简单地使用
pack
在同一主控中将一个小部件覆盖在另一个小部件之上。这不是
pack
所能做到的
pack
被明确设计为将小部件放置在同一主控中现有小部件的上方、下方或侧面的未分配空间中


如果要将帧堆叠在彼此的顶部,则需要使用
grid
place

谢谢!非常有用。找不到。