簡體   English   中英

全局函數不適用於tkinter

[英]global functions dont work with 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()

好吧,我不得不相當多地更改代碼,但這可以工作(希望有幫助):

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.py,則可以在啟動時通過說出以下內容來導入文件import file

如果要從任何地方關閉窗口,請使用disp.tkdel(),因為這是直接路徑。 真的希望這會有所幫助。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM