Python 多个tkinter表单?
我有一个用python和Python 多个tkinter表单?,python,user-interface,tkinter,Python,User Interface,Tkinter,我有一个用python和tkinter创建的GUI 我的代码看起来像: from Tkinter import * from PIL import Image, ImageTk master = Tk() def f1(): print "Change to form A" def f2(): print "Change to form B" title = Label(text="Swithing Menus or Forms") title.grid(row=0, c
tkinter
创建的GUI
我的代码看起来像:
from Tkinter import *
from PIL import Image, ImageTk
master = Tk()
def f1():
print "Change to form A"
def f2():
print "Change to form B"
title = Label(text="Swithing Menus or Forms")
title.grid(row=0, column=1)
blank = Label(text="\n")
blank.grid(row=1, column=1)
b = Button(master, text="Submenu A", command=f1)
b.grid(row=2, column=1)
b2 = Button(master, text="Submenu B", command=f2)
b2.grid(row=2, column=2)
mainloop()
GUI中的按钮允许我在单击时调用函数
我知道可以使组件处于非活动状态,但是否可以在单击按钮时拉出另一个窗体
使所有组件消失并产生新组件?个人而言,要做到这一点,我将在一个框架内构建每个表单,更改表单的方法非常简单: (使用包装) (使用网格) 如果它是单向的(即不能重新加载第一个表单) 然后你可以打电话:
frame.destroy()
詹姆斯好的,首先詹姆斯给出了一个很好的答案,但我想补充几点: 您可以使用
grid.remove()
这将记住小部件的位置等。因此,您可以grid()
再次使用它,并使用相同的规格将其取回。这可能比pack/grid.forget()
稍好一些,因为他们“忘记”了小部件
同样要回答问题的下半部分,是的,你可以打开新的表单,你可以创建更多或不同的小部件,更多的窗口,甚至可以在一个函数中调用另一个模块
我想这已经回答了您的问题,但是如果还有什么问题,请提问。您的意思是销毁所有小部件并在同一tk窗口中创建新的小部件吗?是的,销毁所有小部件但保持窗口打开。基本上是第一个“表单”的提交,提出了第二组Widgetsy您也可以使用
frame1.lift(frame2)
(lift frame1 over frame2)或frame1.lower(frame2)
(frame2下的下部frame1)
frame1.grid_forget()
frame2.grid()
frame.destroy()