Python 2.7 Python Tkinter:destroy()我的顶级()窗口

Python 2.7 Python Tkinter:destroy()我的顶级()窗口,python-2.7,tkinter,Python 2.7,Tkinter,我不明白我做错了什么。 我正在尝试创建一个登录窗口。当您单击登录时,我想做一些事情,然后关闭并转到主GUI 我在网上发现了一大堆我无法理解的东西。我不想剪切和粘贴我不完全理解的其他人的代码 所以我想知道我做错了什么。首先,我创建了一个destroyWindow()方法,我从按钮调用它作为起点。 loginWindow在其自己的类中不存在范围问题。我认为类应用程序将绕过范围问题。我试着用self,但没用。我尝试了在别人的代码中随机看到的东西。有人能指出我遗漏了什么吗?我明白了 NameError:

我不明白我做错了什么。 我正在尝试创建一个登录窗口。当您单击登录时,我想做一些事情,然后关闭并转到主GUI

我在网上发现了一大堆我无法理解的东西。我不想剪切和粘贴我不完全理解的其他人的代码

所以我想知道我做错了什么。首先,我创建了一个destroyWindow()方法,我从按钮调用它作为起点。 loginWindow在其自己的类中不存在范围问题。我认为类应用程序将绕过范围问题。我试着用self,但没用。我尝试了在别人的代码中随机看到的东西。有人能指出我遗漏了什么吗?我明白了

NameError:未定义全局名称“loginWindow”


啊答案确实是这样

我并不是到处都用。这是解决办法

#!/Usr/bin/Python
import Tkinter,tkFileDialog,tkMessageBox
from Tkinter import *
from tkFileDialog import *
import sys, time, datetime
import pathlib
from pathlib import * #makes it really easy to travers folders if needed.

mainWindow = Tk()
mainWindow.wm_title("my prog")
mainWindow.wm_iconbitmap('fb_logo_sm.ico')
mainFrame = Frame(mainWindow)
mainFrame.grid(padx=10,pady=10)

class loginWindowClass():
    def __init__(self):
        self.loginWindow = Tkinter.Toplevel()
        self.loginWindow.configure(bg='#22BEF2')    
        loginWindowFrame = Frame(self.loginWindow,bg='#22BEF2')
        loginWindowFrame.grid(padx=90,pady=50)
        self.loginWindow.wm_title("log in")
        self.loginWindow.wm_iconbitmap('my.ico')
        usernameLable = Tkinter.Label(loginWindowFrame,text="User Name",fg='#FFFFFF',bg='#22BEF2')
        usernameLable.grid(row=1,column=2,padx=(0,5),sticky=W+S)
        usernameField = Entry(loginWindowFrame)
        usernameField.config(width=24)
        usernameField.grid(row=2,column=2)
        passwordLable =Tkinter.Label(loginWindowFrame,text="Password",fg='#FFFFFF',bg='#22BEF2')
        passwordLable.grid(row=3,column=2,sticky=W+S)
        passwordField = Entry(loginWindowFrame)
        passwordField.config(width=24)
        passwordField.grid(row=4,column=2)
        loginButton = Button(loginWindowFrame, text='Log In', height=1, width=20, wraplength=100,        fg='white',bg='#bbbbbb',command=self.destroyWindow).grid(row=5,column=2,pady=(10,0))
    def destroyWindow(self):
        self.loginWindow.destroy()

logwin = loginWindowClass()

mainWindow.mainloop()

错误消息似乎不言自明。
#!/Usr/bin/Python
import Tkinter,tkFileDialog,tkMessageBox
from Tkinter import *
from tkFileDialog import *
import sys, time, datetime
import pathlib
from pathlib import * #makes it really easy to travers folders if needed.

mainWindow = Tk()
mainWindow.wm_title("my prog")
mainWindow.wm_iconbitmap('fb_logo_sm.ico')
mainFrame = Frame(mainWindow)
mainFrame.grid(padx=10,pady=10)

class loginWindowClass():
    def __init__(self):
        self.loginWindow = Tkinter.Toplevel()
        self.loginWindow.configure(bg='#22BEF2')    
        loginWindowFrame = Frame(self.loginWindow,bg='#22BEF2')
        loginWindowFrame.grid(padx=90,pady=50)
        self.loginWindow.wm_title("log in")
        self.loginWindow.wm_iconbitmap('my.ico')
        usernameLable = Tkinter.Label(loginWindowFrame,text="User Name",fg='#FFFFFF',bg='#22BEF2')
        usernameLable.grid(row=1,column=2,padx=(0,5),sticky=W+S)
        usernameField = Entry(loginWindowFrame)
        usernameField.config(width=24)
        usernameField.grid(row=2,column=2)
        passwordLable =Tkinter.Label(loginWindowFrame,text="Password",fg='#FFFFFF',bg='#22BEF2')
        passwordLable.grid(row=3,column=2,sticky=W+S)
        passwordField = Entry(loginWindowFrame)
        passwordField.config(width=24)
        passwordField.grid(row=4,column=2)
        loginButton = Button(loginWindowFrame, text='Log In', height=1, width=20, wraplength=100,        fg='white',bg='#bbbbbb',command=self.destroyWindow).grid(row=5,column=2,pady=(10,0))
    def destroyWindow(self):
        self.loginWindow.destroy()

logwin = loginWindowClass()

mainWindow.mainloop()