2012-12-31 73 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

相關問題