gpt4 book ai didi

python - tk 消息框导入困惑

转载 作者:太空狗 更新时间:2023-10-29 19:36:01 26 4
gpt4 key购买 nike

目前刚开始学习tkinter,在import messagebox的时候发现一定不是很懂import语句。

让我困惑的是:

import tkinter as tk

def text_box():
if tk.messagebox.askokcancel("Quit", "Never Mind"):
root.destroy()

root = tk.Tk()
button = tk.Button(root, text="Press the button", command=text_box)
button.pack()
root.mainloop()

编译正常,但按下按钮会出现错误 'module' object has no attribute 'messagebox',而代码:

import tkinter as tk
from tkinter import messagebox

...
if messagebox.askokcancel("Quit", "Never Mind"):
...

...工作顺利。

如果我使用 from tkinter import * 导入,我会遇到类似的错误。

tkinter 的帮助在 PACKAGE CONTENTS 列表中显示了 messagebox,但我无法以正常方式加载它。

所以我的问题是,为什么...以及我不理解的导入是什么?

只是想我应该提一下——该代码仅适用于 Python 3,而在 Python 2.x 中 messagebox 被称为 tkMessageBox 并且未在 tkinter 中定义

最佳答案

tkinter.messagebox 是一个模块,而不是一个类。

因为它没有在 tkinter.__init__.py 中导入,所以您必须明确地导入它才能使用它。

import tkinter
tkinter.messagebox # would raise an ImportError
from tkinter import messagebox
tkinter.messagebox # now it's available eiter as `messagebox` or `tkinter.messagebox`

关于python - tk 消息框导入困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16374775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com