gpt4 book ai didi

python - tkinter 选项菜单是否有可以表示的最大数量?

转载 作者:行者123 更新时间:2023-12-01 08:54:38 24 4
gpt4 key购买 nike

我在此处的代码中重现了该问题。我可能错误地定义了列表。

import tkinter as tk
Name=("")
j=0
AnimalNameList=["Badger","Beaver","Buffalo","Bull","Bulldog","Cobra","Curlew","Eagle","Falcon","Fox","Gannet","Hawk","Kestrel","Lion","Merlin","Otter","Owl","Panther","Peewit","Raven","Seagull","Seal","Stag","Swift","Tiger","Wolf","Woodpecker","Woodpigeon"]
for i in AnimalNameList:
j=j+1
print(i)
print(j)
root=tk.Tk()
Animals=tk.OptionMenu(root,Name,AnimalNameList)
Animals.grid(row=1,column=1)
root.mainloop()

最佳答案

您可以测试它可以取多少个值。

这是一个简单的例子:

import tkinter as tk

long_list = []
for i in range(50000):
long_list.append(i)

root = tk.Tk()
Animals=tk.OptionMenu(root, "start", *long_list)
Animals.grid(row=1, column=1)
root.mainloop()

上面的内容对我有用,尽管加载需要几秒钟。如果我尝试做 70,000 次,就会失败。根据 this post 认为列表中的最大元素可能非常大我想这种限制可能是基于内存。然而你的问题并不是因为有太多的选择。

您忘记了选项菜单上参数的*。传递选项列表时这是必需的,否则它将为您提供一个下拉项,其中一行中包含列表中的所有值。

所以改变这个:

Animals=tk.OptionMenu(root,Name,AnimalNameList)

对此:

Animals=tk.OptionMenu(root,Name,*AnimalNameList)

还要确保执行root.mainloop(),因为括号是必需的。

关于python - tkinter 选项菜单是否有可以表示的最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861744/

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