0

トップレベルを破壊できません (Tkinter、python)

私のプログラムでは

1)最初にユーザーがボタンを押すと、トップレベルが表示されます

2)トップレベル内には、さらにいくつかのウィジェットともう1つのボタンがあります

3)ユーザーがこの(2番目の)ボタンを押すと、関数(name_of_toplevel.destroy())が機能し始めます

4)しかし、その後、ターミナルは私に「NameError:グローバル名 'name_of_toplevel'が定義されていません」と書いています

5)しかし、それは本当に定義されています!

6) ボタンはメソッド "bind" で関数にバインドされます

プログラムのテキスト:

from Tkinter import *


def Begin(event):
    okno.destroy()

def QuitAll(event):
    exit(0)

def OpenOkno(event):
    #print "<ButtonRelease-1> really works! Horray!"
    okno = Toplevel()
    okno.title('Question')
    okno.geometry('700x300')

    Sign = Label(okno,text = 'Quit the program?', font = 'Arial 17')
    Sign.grid(row = 2, column = 3)

    OK = Button(okno, text = 'YES',  bg = 'yellow', fg = 'blue', font = 'Arial 17')
    OK.grid(row = 4, column = 2)

    OK.bind("<ButtonRelease-1>",QuitAll)


    NO = Button(okno, text = 'NO', bg = 'yellow', fg = 'blue', font = 'Arial 17')
    NO.grid(row = 4, column = 4)

    NO.bind("<ButtonRelease-1>",Begin)




root  = Tk()  # main window 'program_on_Python'

root.title('Program_on_Python')

root.geometry('400x600')



knpk = Button(root, text = 'click here!', width = 30, height = 5, bg = 'yellow', fg =   'blue', font = 'Arial 17')
knpk.grid(row = 2, column = 2)

knpk.bind("<ButtonRelease-1>",OpenOkno)

root.mainloop()

できれば、私を助けてください

4

1 に答える 1