我刚开始使用Python的tkinter
GUI工具。在我的代码中,我创建了一个带有一个按钮的简单GUI,如果他们点击按钮,我想向用户显示messagebox
。
目前,我使用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()
答案 0 :(得分:8)
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'
答案 1 :(得分:-5)
这是区分大小写的 - tkinter
无论在何处使用都应为Tkinter
。我这样做了,并且能够运行你的榜样。