gpt4 book ai didi

python - 类型错误:类型的对象: 'Frame' 没有 len()

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:21 30 4
gpt4 key购买 nike

简单的 tkinker 程序会生成我以前从未见过的错误:TypeError: object of type: 'Frame' has no len()

我完全不知道为什么会出现此错误,也不知道这意味着什么。

def gui ():
window = tk.Tk()

window.title('DudzRPG ' + version)

#frames
options = tk.Frame()
options1 = tk.Frame()
options2 = tk.Frame()

#widgets
image = tk.Canvas(bg='blue')

opt1=tk.Button()
opt2=tk.Button()
opt3=tk.Button()
opt4=tk.Button()

#packs
image.pack()

options.pack()
options1.pack()
options2.pack()

opt1.pack(options1)
opt2.pack(options1)
opt3.pack(options2)
opt4.pack(options2)




window.mainloop()

错误似乎起源于:

options1 = tk.Frame()
options2 = tk.Frame()

这对我来说没有意义,因为上面的行几乎相同:

options = tk.Frame()

这是追溯:

Traceback (most recent call last):
File "<string>", line 250, in run_nodebug
File "C:\Users\I.S.B\Google Drive\Dudzo inc python workspace\project\python thing.py", line 56, in <module>
gui()
File "C:\Users\I.S.B\Google Drive\Dudzo inc python workspace\project\python thing.py", line 43, in gui
opt1.pack(options1)
File "C:\Python33\Lib\tkinter\__init__.py", line 1909, in pack_configure
+ self._options(cnf, kw))
File "C:\Python33\Lib\tkinter\__init__.py", line 1108, in _options
cnf = _cnfmerge(cnf)
File "C:\Python33\Lib\tkinter\__init__.py", line 105, in _cnfmerge
for c in _flatten(cnfs):
TypeError: object of type 'Frame' has no len()

我的问题是,这个错误是什么意思,我该如何修复它?

最佳答案

您没有正确调用 pack - 请参阅 here用于文档。抛出错误是因为 pack 函数没有将小部件作为位置参数。

您似乎误以为 pack 函数的工作是指定哪个小部件是哪个小部件的子项。事实上,当您创建一个小部件时,您必须告诉该小部件它的父级是什么。修复方法如下:

当您创建小部件时,第一个参数应该是小部件的预期父小部件:

opt1=tk.Button(options1)
opt2=tk.Button(options1)
opt3=tk.Button(options2)
opt4=tk.Button(options2)

然后,当你打包它们时,它们已经知道它们属于哪个小部件:

opt1.pack()
opt2.pack()
opt3.pack()
opt4.pack()

然后以防万一您忘记了,您需要开始 GUI 的主循环:

window.mainloop()

关于python - 类型错误:类型的对象: 'Frame' 没有 len(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706375/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com