如何关闭我 运行 我的代码时弹出的空 tkinter window
How to close the empty tkinter window that pops up when I run my code
我正在尝试创建一个执行特定计算的 tkinter gui。我创建了一个 window 来请求输入以进行计算。但是,每次我 运行 我的代码 2 windows 弹出而不是一个。当我 运行 我的代码时,有没有一种方法可以自动关闭空白 window,这样用户只会看到要求输入的 window。
为简单起见,我更改了所有按钮以关闭应用程序。
import numpy as np
import pandas as pd
from datetime import datetime
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.messagebox
import blpapi
import pdblp
con = pdblp.BCon(timeout=5000)
con.start()
s= ttk.Style()
s.theme_use('xpnative')
root =tk.Tk()
root.title("Vega Requirement Application")
root.geometry("600x400")
ticker_var= tk.StringVar()
volume_var= tk.StringVar()
def close():
root.destroy()
def clear_all():
root.destroy()
def vega_calculation():
root.destroy()
ticker_label = ttk.Label(root, text='Bloomberg Ticker:',font=('calibre',10,'normal'))
ticker_entry = ttk.Entry(root, textvariable = ticker_var,font=('calibre',10,'normal'))
volume_label = ttk.Label(root, text='Volume:',font=('calibre',10,'normal'))
volume_entry = ttk.Entry(root, textvariable = volume_var,font=('calibre',10,'normal'))
run_btn = ttk.Button(root, text = 'Calculate', command = vega_calculation, width = 13)
close_btn = ttk.Button(root, text= 'Close App', command = close, width =13)
clear_btn = ttk.Button(root, text= 'Clear table', command = clear_all, width=13)
ticker_label.grid(row=0,column=0)
ticker_entry.grid(row=0,column=1)
volume_label.grid(row=1,column=0)
volume_entry.grid(row=1,column=1)
run_btn.grid(row=0,column=2)
close_btn.grid(row=1, column=2)
clear_btn.grid(row=0, column =4)
root.mainloop()
以下两行将创建一个Tk()
的实例,因为它们执行时没有Tk()
的实例:
s = ttk.Style() # create an instance of Tk() if there is none
s.theme_use('xpnative')
将这两行移动到 root = tk.Tk()
之后,以便它使用已经创建的 Tk()
:
实例
root = tk.Tk()
s = ttk.Style() # use existing instance of Tk(), root
s.theme_use('xpnative')
我正在尝试创建一个执行特定计算的 tkinter gui。我创建了一个 window 来请求输入以进行计算。但是,每次我 运行 我的代码 2 windows 弹出而不是一个。当我 运行 我的代码时,有没有一种方法可以自动关闭空白 window,这样用户只会看到要求输入的 window。
为简单起见,我更改了所有按钮以关闭应用程序。
import numpy as np
import pandas as pd
from datetime import datetime
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.messagebox
import blpapi
import pdblp
con = pdblp.BCon(timeout=5000)
con.start()
s= ttk.Style()
s.theme_use('xpnative')
root =tk.Tk()
root.title("Vega Requirement Application")
root.geometry("600x400")
ticker_var= tk.StringVar()
volume_var= tk.StringVar()
def close():
root.destroy()
def clear_all():
root.destroy()
def vega_calculation():
root.destroy()
ticker_label = ttk.Label(root, text='Bloomberg Ticker:',font=('calibre',10,'normal'))
ticker_entry = ttk.Entry(root, textvariable = ticker_var,font=('calibre',10,'normal'))
volume_label = ttk.Label(root, text='Volume:',font=('calibre',10,'normal'))
volume_entry = ttk.Entry(root, textvariable = volume_var,font=('calibre',10,'normal'))
run_btn = ttk.Button(root, text = 'Calculate', command = vega_calculation, width = 13)
close_btn = ttk.Button(root, text= 'Close App', command = close, width =13)
clear_btn = ttk.Button(root, text= 'Clear table', command = clear_all, width=13)
ticker_label.grid(row=0,column=0)
ticker_entry.grid(row=0,column=1)
volume_label.grid(row=1,column=0)
volume_entry.grid(row=1,column=1)
run_btn.grid(row=0,column=2)
close_btn.grid(row=1, column=2)
clear_btn.grid(row=0, column =4)
root.mainloop()
以下两行将创建一个Tk()
的实例,因为它们执行时没有Tk()
的实例:
s = ttk.Style() # create an instance of Tk() if there is none
s.theme_use('xpnative')
将这两行移动到 root = tk.Tk()
之后,以便它使用已经创建的 Tk()
:
root = tk.Tk()
s = ttk.Style() # use existing instance of Tk(), root
s.theme_use('xpnative')