鉴于这个相对简单的tk脚本:
import Tkinter
class buttton(Tkinter.Button):
def __init__(self,frame,action=None):
if action==None:
action=self.action
Tkinter.Button.__init__(self,frame,command=action)
self.pack(frame)
def action(self):
None
root=Tkinter.Tk()
button=buttton(root)
root.mainloop()
运行此程序时,我遇到了相当神秘的错误:
Traceback (most recent call last):
File "C:/Users/username/Desktop/ab.py", line 14, in <module>
button=buttton(root)
File "C:/Users/username/Desktop/ab.py", line 8, in __init__
self.pack(frame)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1940, in pack_configure
+ self._options(cnf, kw))
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1162, in _options
cnf = _cnfmerge(cnf)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 114, in _cnfmerge
for c in _flatten(cnfs):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1898, in __getattr__
return getattr(self.tk, attr)
AttributeError: __len__
如果有任何帮助,我会非常高兴!
答案 0 :(得分:3)
这是你的问题:
self.pack(frame)
self.pack
不接受帧参数。删除frame
,它应该运行正常,如下所示:
self.pack()