Как автоматически закрыть окно tkinter после использования кнопки для экспорта файла - PullRequest
0 голосов
/ 25 февраля 2020

Я использую следующий код 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 Ответ

1 голос
/ 25 февраля 2020

Измените 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
...