我用它来从用户那里获取是/否,但它会打开一个空窗口:
from Tkinter import *
from tkMessageBox import *
if askyesno('Verify', 'Really quit?'):
print "ok"
这个空窗口不会消失。我怎样才能防止这种情况发生?
这是行不通的:
Tk().withdraw()
showinfo('OK', 'Select month')
print "line 677"
root = Tk()
root.title("Report month")
months = ["Jan","Feb","Mar"]
sel_list = []
print "line 682"
def get_sel():
sel_list.append(Lb1.curselection())
root.destroy()
def cancel():
root.destroy()
B = Button(root, text ="OK", command = get_sel)
C = Button(root, text ="Cancel", command = cancel)
Lb1 = Listbox(root, selectmode=SINGLE)
for i,j in enumerate(months):
Lb1.insert(i,j)
Lb1.pack()
B.pack()
C.pack()
print "line 702"
root.mainloop()
for i in sel_list[0]:
print months[int(i)]
return months[int(sel_list[0][0])]
Tkinter 要求先存在根窗口,然后才能创建任何其他小部件、窗口或对话框。如果您尝试在创建根窗口之前创建对话框,tkinter 将自动为您创建根窗口。
解决方案是显式创建一个根窗口,如果您不希望它可见,则将其撤回。
您应该始终只创建一个实例Tk
,并且您的程序应该设计为在该窗口被销毁时退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)