有一个错误:“AttributeError: module 'tkinter' has no attribute 'messagebox'” 即使 import tkinter
一开始就已经给出了,为什么 tkinter.Tk 没有错误()
语句 ?
我发现 import
语句不像 C 语言中的 #include
语句,所以我可以理解我们需要导入 tkinter.messagebox
如果我们想使用它,即使 import tkinter
已经给出,但让我困惑的是为什么 tkinter.Tk
即使我们没有写也能很好地工作像 import tkinter.Tk
这样的东西?
import time, sys
import tkinter
#import tkinter.messagebox
window = tkinter.Tk()
tkinter.messagebox.showwarning()
window.mainloop()
最佳答案
tkinter.Tk()
函数是 tkinter
的一部分。然而,messagebox
函数是 tkinter.messagebox
的一部分,tkinter.messagebox
是 tkinter
中的另一个模块。这就是为什么 tkinter.Tk()
只需要导入 tkinter
就可以正常工作,但是 tkinter.messagebox
需要导入消息框模块。
有关 Tkinter 模块的更多信息,请访问 official documentation .
如果您满足以下任一条件,就可以让它工作:
from tkinter import messagebox
然后像这样调用函数:
messagebox.showwarning()
或者像您在代码中注释的那样导入:
import tkinter.messagebox
像你一样打电话:
tkinter.messagebox.showwarning()
希望对您有所帮助。
关于python - 为什么我需要导入 tkinter.messagebox 但导入 tkinter 后不需要导入 tkinter.Tk()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56268474/