2012-01-17 90 views
1

可能有人請解釋爲什麼當你有一個普通的小部件一行代碼A工作蟒蛇Tkinter的包裝

Entry(root, width=10).pack(side=LEFT,anchor=W) 

,但是當你的名字或附加命令將其代碼A不再起作用,讓您錯誤消息B

self.my_entry = Entry(root, width=10).pack(side=LEFT,anchor=W) 

並且您必須使用單獨的行進行打包?

self.my_entry = Entry(root, width=10) 
self.my_entry.pack(side=LEFT,anchor=W) 

代碼A

self.my_entry.get() 

錯誤消息乙

AttributeError: 'NoneType' object has no attribute 'get' 
+0

你是什麼意思的「不工作」?小部件不再出現?或者是其他東西? – 2012-01-17 15:05:46

+0

我用更具體的例子和具體的錯誤信息更新了它 – Jeff 2012-01-17 15:18:38

回答

6

pack方法返回None。所以

self.my_label = Label(root, text="My Label").pack(side=LEFT,anchor=W) 

self.my_labelNone。這就是爲什麼使用self.my_label的更多命令不再有效。

您已經找到解決方案;撥打pack分開一行:

self.my_label = Label(root, text="My Label") 
self.my_label.pack(side=LEFT,anchor=W)