全局函数不适用于tkinter

时间:2018-01-29 21:12:43

标签: python tkinter

我在Python3中编写了一个基本脚本来创建一个基本函数,然后显示关闭窗口。我想有一个关闭窗口的功能,所以我可以将脚本导入到我所拥有的不同文件中,而不会过多地混淆它。我尝试了这个,但编译器返回name tkdel() is not defined

def tkdisp(t): 
    import tkinter as tk
    class disp(tk.Frame): 
        def __init__(self, master=None): 
            super().__init__(master) 
            self.pack() 
            self.distk = tk.Label(self) 
            self.distk["text"] = t
            self.distk.pack(side="top") 
            root = tk.Tk()
            disp(master=root).mainloop()
            def tkdel():
              global tkdel
              root.destroy
tkdisp('nice')
tkdel()

1 个答案:

答案 0 :(得分:0)

好吧,我不得不改变代码,但这有效(希望它有所帮助):

import tkinter as tk

root = tk

class disp(tk.Frame): 
    def __init__(self, master=None): 
        super().__init__(master) 
        self.pack() 
        self.distk = tk.Label(self) 
        self.distk["text"] = t
        self.distk.pack(side="top") 
        root = tk.Tk()
        disp(master=root).mainloop()
    def tkdel():
      #global tkdel
      app = None
      exit()

disp.tkdel()

我尽量不使用全局变量,因为它可能会在大型程序中变得复杂。 :)最好直接在地方之间发送数据。 :)

我只是重读了这个问题。如果你想使用另一个 FILE - 比如file.py你可以在启动时导入文件,只需说:导入文件

如果您想从任何地方关闭窗口,只需使用 disp.tkdel(),因为这是一个直接路径。真的希望这会有所帮助。 :)