下面的代码在IDLE内运行正常,但除此之外我得到“NameError:全局名称'messagebox'未定义”。但是,如果我明确说明from tkinter import messagebox
,它从任何地方运行良好。Python tkinter 8.5导入消息框
from tkinter import *
from tkinter import ttk
root = Tk()
mainFrame = ttk.Frame(root)
messagebox.showinfo("My title", "My message", icon="warning", parent=mainFrame)
为什么IDLE不需要显式导入语句,但需要其他地方?
IDLE是tkinter程序,因此它有自己的导入和root用户。在IDLE中用tkinter编程是一个坏主意。为了避免在控制台中出现行为更好的情况。 – Trimax