Python Tkinter更新主框架

Python Tkinter更新主框架,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,有没有办法强制更新主框架?我只需要这个: if(saved(0)): Tk.Button(self.frame, text="Continue", command=self.pokracovat, relief="groove").grid() 首先,我打开主窗口。函数“saved”返回false,因此不创建按钮。然后我用toplevel打开另一个窗口。主窗口消失了。然后我关闭该窗口并打开主窗口-函数“saved”现在返回true,但仍然没有显示按钮。我使用self.root.up

有没有办法强制更新主框架?我只需要这个:

if(saved(0)):
    Tk.Button(self.frame, text="Continue", command=self.pokracovat, relief="groove").grid()  

首先,我打开主窗口。函数“saved”返回false,因此不创建按钮。然后我用toplevel打开另一个窗口。主窗口消失了。然后我关闭该窗口并打开主窗口-函数“saved”现在返回true,但仍然没有显示按钮。我使用self.root.update(),但它不起作用。

要在将更改保存为True时创建按钮,可以执行以下操作:

  • 您可以使用一个循环来检查值,当值发生变化时,循环会执行某些操作
  • 您知道值在何处更改,并在该位置插入一些代码来执行您想要的操作。 对于这一点,这可能是有趣的

  • 正如另一个想法一样,您是否反对将按钮“状态”设置为tk.disabled when saved option未设置,从而使按钮出现,但处于禁用状态,除非设置了saved(0)选项?如果语句仅被计算一次,则此
    。您应该在其中放入print语句,以查看何时调用它。问题是保存的函数仍然返回False。若我关闭窗口并再次启动程序,则返回True。@ebarr函数仅在创建窗口时才被求值。我用这个:我们没有足够的信息来帮助你。我们需要看到更多的代码。如果
    saved(0)
    返回True并执行上述代码,则按钮绝对会添加到
    self.frame
    。问题远不止你给我们看的。