python - tkinter.messagebox.showinfo 并不总是有效

标签 python user-interface python-3.x tkinter

我刚刚开始使用 Python 的 tkinter GUI 工具。在我的代码中,我创建了一个带有一个按钮的简单 GUI,如果用户单击该按钮,我想向他们显示一个消息框

目前,我使用 tkinter.messagebox.showinfo 方法。我使用 IDLE 在 Windows 7 计算机上编写代码。如果我从 IDLE 运行代码,一切正常,但如果我尝试在 Python 3 解释器中独立运行它,它就不再工作了。相反,它将此错误记录到控制台:

AttributeError:'module' object has no attribute 'messagebox'

你有什么建议给我吗?我的代码是:

import tkinter

class simpleapp_tk(tkinter.Tk):
    def __init__(self,parent):
        tkinter.Tk.__init__(self,parent)
        self.parent = parent
        self.temp = False
        self.initialize()

    def initialize(self):
        self.geometry()
        self.geometry("500x250")
        self.bt = tkinter.Button(self,text="Bla",command=self.click)
        self.bt.place(x=5,y=5)
    def click(self):
        tkinter.messagebox.showinfo("blab","bla")

if __name__ == "__main__":
    app = simpleapp_tk(None)
    app.title('my application')
    app.mainloop()

最佳答案

messagebox 以及一些其他模块(如 filedialog)不会在您 import tkinter 时自动导入。根据需要使用 as 和/或 from 显式导入它。

>>> import tkinter
>>> tkinter.messagebox.showinfo(message='hi')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'messagebox'
>>> import tkinter.messagebox
>>> tkinter.messagebox.showinfo(message='hi')
'ok'
>>> from tkinter import messagebox
>>> messagebox.showinfo(message='hi')
'ok'

关于python - tkinter.messagebox.showinfo 并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29774938/

相关文章:

python - 具有外生变量矩阵的 statsmodels SARIMAX 大小不同

python - 如何将 Python 源代码重新加载到 Eclipse/Pydev 的控制台窗口中?

c++ - Python Swig 包装器 : how access underlying PyObject

c# - 将 GUI 组件添加到预编译的应用程序

jquery - 当以特定速度向上滚动页面的足够部分时显示标题

python - For循环跳过重复索引

python - Airflow - 外部 API 调用给出 Negsignal.SIGSEGV 错误

java - 如何在 Android 应用程序中阻止或改善横向 View

python-3.x - 如何在笔记本电脑的浏览器中显示正在服务器本地主机中运行的Webapp

python - 在 matplotlib 中按行和列迭代生成子图 - 仅最终轴绘图