我正在编写一个模块,我想支持弹出对话框来指示错误,但我不需要或不想要根窗口(因为我希望模块独立于主 GUI 并且可以在多个调用应用程序之间共享) . 我试着简单地这样做:
import tkMessageBox
[...stuff...]
if (errorCondition): tkMessageBox.showwarning("My Module","That won't work!")
...但是当我运行它时,消息框旁边会出现一个根窗口。我知道这个withdraw()
方法,但是因为我从来没有导入过Tkinter
自己,也从来没有实例化过Tkinter.Tk()
,所以我没有对象可以使用withdraw()
。
一个可行的替代方法是继续导入Tkinter
,所以我可以自己创建根窗口,然后创建withdraw()
它:
import Tkinter
import tkMessageBox
root = Tkinter.Tk()
root.withdraw()
[...stuff...]
if (errorCondition): tkMessageBox.showwarning("My Module","That won't work!")
...但即使这样可行,引入一个模块并实例化一个对象似乎很笨拙,以便我可以摆脱它。另外,我不想混淆这个根和调用应用程序中的“真实”根之间的东西。
回到第一个例子,很明显它tkMessageBox
在做一些事情来自己创建根窗口。有什么办法可以获取对那个根窗口的引用,这样我就可以withdraw()
了?
(环境是 Windows 7 和 Python 2.7.3。)