wait_window在对代码的其他部分进行无关更改后返回“_tkinter.TclError”

时间:2016-11-11 23:13:25

标签: python python-3.x tkinter

我正在创建一个python tkinter小部件,它在加载之前会弹出一个窗口,询问您是想要一个小版本还是完整版本。我曾经把代码设置为等到该窗口在加载之前被关闭/销毁,因为它意味着我不会因为没有文件存在而得到任何错误。使用'wait_window'方法工作正常,但在更改代码后不会影响这一点,它开始返回以下错误:

_tkinter.TclError: bad window path name ".56003760"

这里是widget的代码,它在一个类中的“initUI”函数内的helt:

def Options(self):
     self.Options_Window = Toplevel()
     self.Options_Window.resizable(0,0)
     self.Version = "Full"
     self.Options_Window.wm_title("Welcome!")

     textbox_lbl = Label(self.Options_Window, text="Please choose a version \n Lite is for speeded loading, full may take about 22 days, 8 hours, 13 minutes and 44 seconds to load")
     textbox_lbl.pack(side=TOP, fill=Y)

     lite_btn = Button(self.Options_Window, text="Lite", command=lambda:Lite_Version())
     lite_btn.pack(side=BOTTOM, fill=X)
     lite_btn.pack(side="left", expand=True, anchor=CENTER)

     full_btn = Button(self.Options_Window, text="Full", command=lambda:Full_Version())
     full_btn.pack(side=BOTTOM, fill=X)
     full_btn.pack(side="right", expand=True, anchor=CENTER)

     def Full_Version():
         self.Version = "Full"
         self.Options_Window.destroy()
     def Lite_Version():
         self.Version = "Lite"
         self.Options_Window.destroy()

     root.wait_window(self.Options_Window)

 Options(self)

以下是主应用程序窗口的代码:

root = Tk()
root.wm_title("barcode manager")
root.geometry("720x350")
n = ttk.Notebook(root)

如果您需要更多代码,请随时提出。我需要尝试在周末完成这项任务,但从长远来看这并不重要,只是为了让它看起来更好。

我一直在研究这个问题,但我能找到的所有东西都没有适用于我的情况。

0 个答案:

没有答案