Python 帧交换不起作用

Python 帧交换不起作用,python,tkinter,Python,Tkinter,我想切换帧,但无法切换 第一页(框架)应具有红色背景色和“Hello”按钮,框架尺寸应为900x650作为窗口尺寸。当按下“Hello”按钮时,应切换到第二帧 第二页(框架)应具有绿色背景色和“Hello”按钮,框架尺寸应为900x650,作为窗口尺寸。当按下“Hello”按钮时,应切换到第一帧 import Tkinter as tk def raise_frame(frame): print "Inside raise frame" frame.tkraise() roo

我想切换帧,但无法切换

第一页(框架)应具有红色背景色和“Hello”按钮,框架尺寸应为900x650作为窗口尺寸。当按下“Hello”按钮时,应切换到第二帧

第二页(框架)应具有绿色背景色和“Hello”按钮,框架尺寸应为900x650,作为窗口尺寸。当按下“Hello”按钮时,应切换到第一帧

import Tkinter as tk

def raise_frame(frame):
    print "Inside raise frame"
    frame.tkraise()

root = tk.Tk()
root.geometry("900x650+220+20")
root.title("Testing")


frame1 = tk.Frame(root, width=900, height=650, background="red")
frame2 = tk.Frame(root, width=900, height=650, background="green")


B1= tk.Button(frame1, text="Hello", width =10, height=2, command = lambda:raise_frame(frame2)).place (x=200, y=200)
B2= tk.Button(frame2, text="Hello", width =10, height=2, command = lambda:raise_frame(frame1)).place (x=400, y=400)



frame1.pack( )
frame2.pack( )

root.mainloop()

由于您使用的是
pack()
,因此第二帧被放置在第一帧的下方。您可以通过拖动窗口的底部来检查这一点。您将看到,创建了两个框架,顶部为红色,底部为绿色

可以使用将框架放置在彼此的顶部

因此,更换管路

frame1.pack()
frame2.pack()


由于您使用的是
pack()
,因此第二帧被放置在第一帧的下方。您可以通过拖动窗口的底部来检查这一点。您将看到,创建了两个框架,顶部为红色,底部为绿色

可以使用将框架放置在彼此的顶部

因此,更换管路

frame1.pack()
frame2.pack()


@凯乌尔·波达回答得很好。我可以知道网格和包有什么不同吗?我第一页是绿色背景(第二页),而不是第一页。改变网格的顺序。首先是框架2,然后是框架1。您在网格中添加的最后一个项目就是您在顶部看到的项目。谢谢,更改网格的顺序没有任何效果,但我更改了框架声明顺序,如下所示
frame2=tk.frame(root,width=900,height=650,background=“green”)frame1=tk.frame(root,width=900,height=650,background=“red”)
code`@velpandian Pack动态填充“空洞”,而grid总是将小部件放置在节点上,无论节点大小。@Keyur-Potdar回答得很好。我可以知道网格和包有什么不同吗?我第一页是绿色背景(第二页),而不是第一页。改变网格的顺序。首先是框架2,然后是框架1。您在网格中添加的最后一个项目就是您在顶部看到的项目。谢谢,更改网格的顺序没有任何效果,但我更改了框架声明顺序,如下所示
frame2=tk.frame(root,width=900,height=650,background=“green”)frame1=tk.frame(root,width=900,height=650,background=“red”)
code`@velpandian Pack动态填充“空洞”,而grid总是将小部件放置在节点上,无论节点大小。