我正在使用2帧(A和B),我之间切换以使我的程序运行。 以前
while Conditions:
self.frameA.wait_window()
然后当我完成frameA:
self.frameA.destroy()
self.frameB = FrameB(self)
self.frameB.wait_window()
#After I'm finished with B...
#Function that takes info from frames A and B to make the program run
self.frameB.destroy()
self.frameA = FrameA(self)
并在程序期间来回交替。但我开始认为破坏和重新初始化可以做得更好。现在我使用grid_forget()创建了一个像第二个init一样工作的帧的函数。我现在的问题是,因为我没有破坏帧,所以wait_window永远不会破坏,进行无限循环。我玩弄了合并2帧的想法,但这不能解决我的wait_window问题。基本上,有没有办法让我的应用程序等待帧的输入,或者是回到原始方法的最佳解决方案?
while firstConditions():
while secondConditions():
self.play()
#Other code after secondConditions is false
def play(self):
w = messagebox.askyesno(message='Make changes?', parent=self)
if w:
#Deals with making changes
self.frameA.wait_window()
然后frameA中的按钮将导致创建frameB
def makeFrameB(self):
self.frameA.grid_forget()
self.frameB.newInit()
self.frameB.grid(row=3, column=0, columnspan=3)
self.frameB.wait_window()
我使用wait_window的理由是,如果我不这样做,我会得到一个无限循环,消息框一遍又一遍地出现。
答案 0 :(得分:0)
在编辑出现问题的代码后,我不需要使用wait_window来解决我的问题。