Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter.messagebox.showinfo不';我不总是工作_Python_User Interface_Python 3.x_Tkinter - Fatal编程技术网

Python tkinter.messagebox.showinfo不';我不总是工作

Python tkinter.messagebox.showinfo不';我不总是工作,python,user-interface,python-3.x,tkinter,Python,User Interface,Python 3.x,Tkinter,我刚刚开始使用Python的tkinterGUI工具。在我的代码中,我创建了一个带有一个按钮的简单GUI,如果用户单击按钮,我希望向用户显示一个messagebox 目前,我使用tkinter.messagebox.showinfo方法。我在Windows 7计算机上使用IDLE编写代码。如果我从空闲状态运行代码,一切正常,但是如果我尝试在Python3解释器中独立运行它,它就不再工作了。而是将此错误记录到控制台: AttributeError:'module' object has no at

我刚刚开始使用Python的
tkinter
GUI工具。在我的代码中,我创建了一个带有一个按钮的简单GUI,如果用户单击按钮,我希望向用户显示一个
messagebox

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

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()

这是区分大小写的-
tkinter
无论在哪里使用,都应该是
tkinter
。我这样做了,并且能够运行您的示例。

messagebox
,以及其他一些模块,如
filedialog
,在您导入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'
>>导入tkinter
>>>tkinter.messagebox.showinfo(message='hi')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“messagebox”
>>>导入tkinter.messagebox
>>>tkinter.messagebox.showinfo(message='hi')
“好的”
>>>从tkinter导入消息框
>>>messagebox.showinfo(message='hi')
“好的”

OP使用3.x(注意问题标签),其中
Tkinter
重命名为
Tkinter
(参见示例)。您可能正在使用2.x。能否提供完整的错误回溯,格式为代码?尝试导入模块
messagebox
,然后将
tkinter.messagebox.showinfo(“blab”,“bla”)
替换为
messagebox.showinfo(“blab”,“bla”)
,以查看是否有更改。就是这样(从tkinter导入messagebox)谢谢你的解决方案,我不知道它是用IDLE工作的,但是用这个解决方案它可以工作。