如何在不终止程序的情况下关闭tkinter窗口?

时间:2014-12-03 16:51:50

标签: python tkinter

我有一个项目,我正在上课,我正在使用tkinter来构建我的基本GUI。 当我运行代码时,我有两个下拉菜单来选择。我还想要一个按钮来关闭窗口并将程序推进到下一个GUI窗口。但是我没有按钮关闭窗口而不会导致程序终止。这是我的代码

from tkinter import *

Options_year = ["2014", "2013", "2012", "2011", "2010"]
Options_month = ["January","February", "March", "April","May", "June", "July","August","September","October","November",
                 "December"]
master = Tk()
variable_year = StringVar(master)
variable_year.set(Options_year[0])
variable_month = StringVar(master)
variable_month.set(Options_month[0])
window = apply(OptionMenu, (master, variable_year) + tuple(Options_year))
window_month = apply(OptionMenu, (master,variable_month) + tuple(Options_month))
window.pack()
window_month.pack()
button = Button(master, text = "Continue", command = master.quit())
#the line above is the button that i want to use to close the window
button.pack()
mainloop()
print (variable_month.get())
print (variable_year.get())

编辑: 将其转换为一个框架并使用下面提供的答案并使其工作。感谢每一个帮助我的人

2 个答案:

答案 0 :(得分:1)

摧毁gui也会破坏tk变量。我强烈怀疑您由于尝试访问不再存在的variable_month的.get方法而省略了程序因异常回溯而终止的重要信息。以下工作正常。

from tkinter import *
root = Tk()
root.mainloop()
print('here')

答案 1 :(得分:0)

使用Toplevel或框架,将小部件放入其中,然后销毁()它。如果您不希望它显示,可以使用master.withdraw()或iconify()。