使用按钮导出文件后,如何自动关闭 tkinter window
How do I close a tkinter window automatically, after using a button to export a file
我使用以下 python 代码生成一个弹出窗口 window,其中包含一个按钮,用户按下该按钮可将我的 Raw_dataframe 导出到 csv。我想要的是,一旦用户按下按钮并完成命名和导出 csv,弹出 window 自动关闭。目前,弹出窗口只是保持打开状态。
这是功能代码:
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()
如其他帖子中所建议,但我似乎无法正确调用它。
我也试过在我的 canvas1.create_window
命令后添加 root.destroy()
,但这似乎也没有用。
将 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
我使用以下 python 代码生成一个弹出窗口 window,其中包含一个按钮,用户按下该按钮可将我的 Raw_dataframe 导出到 csv。我想要的是,一旦用户按下按钮并完成命名和导出 csv,弹出 window 自动关闭。目前,弹出窗口只是保持打开状态。
这是功能代码:
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()
如其他帖子中所建议,但我似乎无法正确调用它。
我也试过在我的 canvas1.create_window
命令后添加 root.destroy()
,但这似乎也没有用。
将 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