Python:tkinter-askyesno方法打开一个空风

2024-10-01 09:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用此选项从用户处获取“是/否”,但它会打开一个空窗口:

from Tkinter import *
from tkMessageBox import *
if askyesno('Verify', 'Really quit?'):
    print "ok"

enter image description here

这扇空窗不会消失。我怎样才能防止这种情况?在

这行不通:

^{pr2}$

Tags: 用户fromimportiftkinter选项okquit
2条回答

Tkinter要求在创建任何其他小部件、窗口或对话框之前存在根窗口。如果在创建根窗口之前尝试创建一个对话框,tkinter将自动为您创建根窗口。在

解决方案是显式地创建一个根窗口,如果不希望它可见,则将其撤消。在

您应该始终只创建Tk的一个实例,并且您的程序应该设计为在该窗口被破坏时退出。在

显式创建根窗口,然后撤消。在

from Tkinter import *
from tkMessageBox import *
Tk().withdraw()
askyesno('Verify', 'Really quit?')

不是很好的解决方案,但它是有效的。在


更新

不要创建第二个Tk窗口。在

^{pr2}$

相关问题 更多 >