2016-09-29 72 views
-2

我想为这个主题做一个代码我正在做,我已经设法完成它的一些,但当涉及到退出我的tkinter菜单它不会关闭,除非我手动关闭它,我已经得到了关闭它的选项的按钮,但它不起作用。任何人都可以帮助我的问题。下面是我的代码。需要退出按钮帮助

import sys 
import tkinter 
from tkinter import* 
import time 

global v 


global popJ 
popJ = 0 

def genInput(): #Allows the user to input the data 

    gen = Toplevel() 
    gen.wm_title("Data Input") 
    v = IntVar() 
    ent1 = Entry(gen, textvariable = v).pack() 
    ent1Txt = Label(gen, text = 'Please input Juvenile Populations') 

    ent1Txt.pack() 


    v2 = StringVar() 
    ent2 = Entry(gen, textvariable = v2) 
    ent2Txt = Label(gen, text = 'Please input Adult Populations') 
    ent2.pack() 
    ent2Txt.pack() 

    v3 = StringVar() 
    ent3 = Entry(gen, textvariable = v3) 
    ent3Txt = Label(gen, text = 'Please input Senile Populations') 
    ent3.pack() 
    ent3Txt.pack() 

    v4 = StringVar() 
    ent4 = Entry(gen, textvariable = v4) 
    ent4Txt = Label(gen, text = 'Please input Survival rates for Juveniles') 
    ent4.pack() 
    ent4Txt.pack() 

    v5 = StringVar() 
    ent5 = Entry(gen, textvariable = v5) 
    ent5Txt = Label(gen, text = 'Please input Survival rates for Adults') 
    ent5.pack() 
    ent5Txt.pack() 

    v6 = StringVar() 
    ent6 = Entry(gen, textvariable = v6) 
    ent6Txt = Label(gen, text = 'Please input Survival rates for Seniles') 
    ent6.pack() 
    ent6Txt.pack() 

    v7 = StringVar() 
    ent7 = Entry(gen, textvariable = v7) 
    ent7Txt = Label(gen, text = 'Please input the birth rate') 
    ent7.pack() 
    ent7Txt.pack() 

    v8 = StringVar() 
    ent8 = Entry(gen, textvariable = v8) 
    ent8Txt = Label(gen, text = 'Number of Generations') 
    ent8.pack() 
    ent8Txt.pack() 

    def quit1(): # Needs to be here or it breaks the program 
     gen.destroy()    
     return 
    def submit(): 
     global popJ 

     popJ = v.get() 
     popJtxt = Label(gen, text= v.get()).pack() 
     return 



    submit1= Button(gen, text="Submit") 
    submit1.pack() 
    submit1.configure(command = submit) 
    return1 = Button(gen, text = 'Return to Menu') 
    return1.pack(pady=30) 
    return1.configure(command = quit1)  
    return 

def genView(): # should display the data 
    disp = Toplevel() 
    disp.wm_title('Displaying data Values') 
    popJuvenilesTxt = Label (disp, text = popJ) 
    popJuvenilesTxt.grid(row =1, column = 1) 




def menu(): # creates the gui menu 

    menu = Tk() 
    menu.wm_title("Greenfly model") 

    genInp = Button(menu,text = "Set Generation Values") 

    genVew = Button(menu,text = 'Dysplay Generation Values') 

    modelCal = Button(menu,text = 'Run model') 

    exportData = Button(menu,text = 'Export Data') 

    quitProgram = Button(menu,text = 'Quit') 

    genTxt = Label(menu, text= 'Input the Generation values') 
    genvTxt = Label (menu, text = 'View the current generation values') 
    modelTxt = Label (menu, text = 'Run the model') 
    exportTxt = Label (menu, text = 'Export data') 
    quitTxt = Label (menu, text= 'Exit the program') 

    genInp.grid(row=1, column=1) 
    genVew.grid(row=2, column=1) 
    modelCal.grid(row=3, column=1) 
    exportData.grid(row=4 , column=1) 
    quitProgram.grid(row=5, column=1) 
    genTxt.grid(row=1, column = 2) 
    genvTxt.grid(row=2, column = 2) 
    modelTxt.grid(row=3, column = 2) 
    exportTxt.grid(row=4, column = 2) 
    quitTxt.grid(row=5, column = 2) 
    genInp.configure(command = genInput) 
    genVew.configure(command = genView) 
    menu.mainloop() 

menu() 
+0

顺便说一句,我知道我的代码是脱节的。 –

+1

问题需要一个Tcl/TK标签。 –

+0

@JackEdson那你为什么不解决它?另外你应该发布一个[mcve],我不认为这么多的代码是必要的,以显示你的问题。 – Goyo

回答

0

对于Tkinter的你可以通过gen.quit到一个按钮控件的命令,就像这样:

close = Button(gen, text = 'Close', command = gen.quit).pack()