NameError: global name 'messagebox' is not defined - CONSOLE MODE

NameError: global name 'messagebox' is not defined - CONSOLE MODE

我已经导入 tkinter.messagebox,当我按 F5 并在 IDLE 上测试时,我的程序 运行 很顺利。 但是,当应该显示消息框时,我的程序没有在控制台上 运行,我收到错误消息:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\lib\tkinter\__init__.py", line 1456, in __call__
    return self.func(*args)
  File "U:\my documentsth form\A2\Computing\F454\Code and Prototyping\trackeve
nts.py", line 204, in validation
    messagebox.showerror("Data invalid", "The data you have entered is invalid.
Please make sure you have submitted it correctly.")
NameError: global name 'messagebox' is not defined

我导入的消息框和代码部分(如果需要的话):

import tkinter.messagebox

def validation():
(...)
elif completedValidation == False:
    messagebox.showerror("Data invalid", "The data you have entered is invalid. Please make sure you have submitted it correctly.")

试试这个

import Tkinter
import tkMessageBox
#rest of the code and replace the below line
tkMessageBox.showerror("Data invalid", "The data you have entered is invalid. Please make sure you have submitted it correctly.")

如果你import tkinter.messagebox,你必须这样引用它:用tkinter.messagebox。如果你想将它的别名设置为 messagebox,你需要 from tkinter import messagebox.