【发布时间】:2021-08-04 22:43:56
【问题描述】:
以下代码在 IDLE 中运行良好,但否则我得到“NameError:未定义全局名称'messagebox'”。但是,如果我明确声明from tkinter import messagebox,它从任何地方都可以正常运行。
from tkinter import *
from tkinter import ttk
root = Tk()
mainFrame = ttk.Frame(root)
messagebox.showinfo("My title", "My message", icon="warning", parent=mainFrame)
为什么 IDLE 不需要显式的 import 语句,而在其他地方却需要?
【问题讨论】:
-
IDLE 是一个 tkinter 程序,所以它有自己的导入和根。在 IDLE 中使用 tkinter 编程是个坏主意。最好在控制台中避免异常行为。
标签: python tkinter messagebox nameerror