使用按钮导出文件后,如何自动关闭Tkinter窗口

时间:2020-02-25 04:01:46

标签: tkinter tkinter-canvas

我使用以下python代码生成带有按钮的弹出窗口,用户可以通过该按钮将我的Raw_dataframe导出到csv。我想要的是,一旦用户按下按钮并完成csv的命名和导出,弹出窗口就会自动关闭。目前,弹出窗口保持打开状态。

以下是起作用的代码:

    root= tk.Tk()

canvas1 = tk.Canvas(root, width = 300, height = 300, bg = 'lightsteelblue2', relief = 'raised')
canvas1.pack()

def exportCSV ():
    global df

    export_file_path = filedialog.asksaveasfilename(defaultextension='.csv')
    Raw_dataframe.to_csv (export_file_path, index = None, header=True)


saveAsButton_CSV = tk.Button(text='Export Raw Dataframe to CSV', command=exportCSV, bg='green', fg='white', font=('helvetica', 12, 'bold'))
canvas1.create_window(150, 150, window=saveAsButton_CSV)

root.mainloop()

关键是我不想创建另一个按钮来关闭弹出窗口(这似乎是其他问题的常见答案。)我希望弹出窗口自动关闭。

我尝试添加以下代码

def quit(self):
self.destroy()
exit()

如其他帖子中所建议,但我似乎无法正确地称呼它。 我还尝试在root.destroy()命令后添加canvas1.create_window,但这似乎也不起作用。

1 个答案:

答案 0 :(得分:1)

exportCSV()更改为:

def exportCSV ():
    global df

    export_file_path = filedialog.asksaveasfilename(defaultextension='.csv')
    Raw_dataframe.to_csv (export_file_path, index = None, header=True)

    root.destroy() #!make sure it is called INSIDE the function