如何在Tkinter中切换到不同的框架?

时间:2012-07-16 11:28:48

标签: python tkinter

我目前正在使用Python中的Tkinter模块开发一个项目。我正在使用菜单小部件,并且菜单上的每个命令都有另一个与之关联的命令。这些命令中的每一个都会打开一个新帧。我正在使用网格几何管理器。

我的问题是我希望用户能够在帧之间切换,但是当我尝试这样做时,帧会相互重叠而不是切换。如何让活动框架隐藏然后打开一个新框架?我不想迭代可能的帧列表并告诉他们全部隐藏。

这是我到目前为止编写的代码:

import Tkinter as tkinter
root = tkinter.Tk()
root.minsize(400,300)
welcome = tkinter.Frame(root).grid()
label = tkinter.Label(welcome, text="Welcome to my program").grid(row=0, column=3)
button = tkinter.Button(welcome,text="Exit",command=root.destroy).grid(row=3, column=1)
def newFrame():
        newFrame = tkinter.Frame(root).grid()
        newFrame_name = tkinter.Label(newFrame, text="This is another frame").grid()
menu = tkinter.Menu(root)
root.config(menu=menu)

main_menu = tkinter.Menu(menu)
menu.add_cascade(label="Main Menu", menu= main_menu)
main_menu.add_command(label="New Frame", command=newFrame)

#menu.add_command(label="Exit", command=root.destroy, menu= filemenu)


root.mainloop()

当用户从菜单中选择New Frame选项时,我希望newFrame替换欢迎框。

1 个答案:

答案 0 :(得分:1)

如果您使用placegrid将帧叠加在一起,则只需使用lift方法更改堆叠顺序即可。