我使用以下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
,但这似乎也不起作用。
答案 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