调用时,Tkinter grid_forget不会执行

时间:2014-08-06 08:21:12

标签: python for-loop grid tkinter

我正在经历一些我真的不明白的事情。在程序中,我选择一个数据文件然后我想隐藏窗口中的小部件并从文件加载数据。但我尝试的所有内容都会导致首先加载文件然后执行其余的文件......

def LoadProject():
    old_project = FD.askopenfilename(filetypes=[("Data file","*.dat")], initialdir = "./Projects/")

    if old_project:
        napis.delete(TK.ALL)
        napis.grid_forget()
        button_new.grid_forget()
        button_load.grid_forget()

        data_file = open(old_project,"r")
        for line in data_file:
            line = line.replace("\n","")
            conv = line.split()
            data.append([float(conv[0]),int(conv[1]),float(conv[2]),float(conv[3]),float(conv[4])])

在循环结束后执行for循环之前的所有内容。有人能帮帮我吗?我真的不明白这种行为。

1 个答案:

答案 0 :(得分:1)

看起来你需要调用你想要忘记的小部件的update方法。这将刷新挂起的GUI更改。来自effbot.org

  

<强>更新()

     

处理所有待处理事件,调用事件回调,   完成任何挂起的几何管理,重绘小部件为   必要的,并调用所有待处理的空闲任务。这个方法应该是   小心使用,因为它可能会导致真正令人讨厌的竞争条件   从错误的地方调用(从事件回调中调用,用于   例如,或者从可以以任何方式调用的函数   事件回调等)。如有疑问,请改用 update_idletasks