2012-12-31 32 views
2

我使用的Tkinter的GUI,我有一个问题: 我尝试做一个消息控件,当我写:AttributeError的:消息实例没有属性“包”

body = Message(top, bd = 2) 
body.pack(side=RIGHT) 

我得到这个错误:

body.pack(side=RIGHT) 
AttributeError: Message instance has no attribute 'pack' 

我不明白这becaue我在一些导游检查及允许使用“信息”这样一来,因为在这里看到的例子:http://www.tutorialspoint.com/python/tk_message.htm

有没有另外一种方法来写这个?

+0

可能你有不同版本的Tkinter,或者你已经使用名称Message将名称空间中的其他东西导入。你的进口声明是什么样的? –

+0

感谢您的快速响应。这里是我的import语句看起来像: 从插座进口* 从进口的base64 * 从Tkinter的进口* 从tkMessageBox进口* – arikm9

+0

我不知道如何组织代码中的注释,林新在这里,抱歉.. – arikm9

回答

1

Tkinter中至少有两个Message类。其中一个来自tkMessageBox.Message,另一个来自Tkinter.Message。前者是DialogtkCommonDialog开始的子类,由于打包对话框没有意义,因此在这种情况下没有pack方法。后者是一个叫做消息的Tk控件,这是你想要的;作为一个小部件,它是有道理的打包它。

你完整的代码大多喜欢有形式的东西(的Python 2):

from Tkinter import * 
from tkMessageBox import * 

第二进口与第一进口阴影的Message类。要使用Message类你之后,只需更改上面的代码:

from Tkinter import * 
import tkMessageBox 

然后相应地调整你的代码。

+0

甚至更​​好的建议国际海事组织是提倡非全球性的进口,如'进口Tkinter作为tk' –

+0

感谢帮助,但它似乎有另一个问题?是不是meesage应该是多行输入?因为它只是一个带有我在代码中编写的文本的文本框。我不能写在这个框中。 – arikm9

+0

它是一个多行标签,与输入小部件相反。 – mmgp

相关问题