Python Tkinter 8.5导入消息框

发布于 2021-01-29 15:00:23

下面的代码在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语句,而在其他地方则需要它?

关注者
0
被浏览
57
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    消息框是tkinter的单独子模块,因此只需从tkinter进行完整导入即可:

    from tkinter import *
    

    不导入消息框

    必须将其显式导入,如下所示:

    from tkinter import messagebox
    

    以与必须显式导入ttk相同的方式

    它在空闲状态下工作的原因是因为空闲状态出于自身目的导入了消息框,并且由于空闲状态的工作方式,因此在空闲状态下可以访问其导入



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看