2012-01-17 92 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)