帧交换不起作用

时间:2018-03-02 10:27:58

标签: python tkinter

我想换帧,但不能这样做

第一页(框架)应该有红色背景颜色和"你好"按钮和框架大小应为900x650作为窗口大小。当按下"你好"按钮它应该交换到第2帧

第二页(框架)应该有绿色背景颜色和"你好"按钮和框架大小应为900x650作为窗口大小。当按下"你好"按钮它应该交换到第1帧

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()

1 个答案:

答案 0 :(得分:2)

由于您使用的是pack(),因此第二帧位于第一帧的 之下。您可以通过拖动窗口的底部来检查。您会看到顶部有红色,底部有绿色,有2个框架。

您可以使用grid()将帧放在彼此之上。

所以,替换行

frame1.pack()
frame2.pack()

frame1.grid(row=0, column=0)
frame2.grid(row=0, column=0)