tkinter选项菜单是否有它所能表示的最大值?

2024-05-29 08:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里的代码中重新创建了这个问题。我可能对列表的定义不正确。你知道吗

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()

Tags: 代码nameimport列表定义tkinterasroot
1条回答
网友
1楼 · 发布于 2024-05-29 08:25:05

您可以测试它可以接受多少值。你知道吗

下面是一个简单的例子:

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()

上面的工作为我虽然需要几秒钟加载。如果我试着去做70000,结果失败了。虽然根据this post,列表中的最大元素可能非常大,但我认为限制可能基于内存。然而,你的问题不是因为有太多的选择。你知道吗

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

所以改变这个:

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

对此:

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

另外,请确保按照括号的要求执行root.mainloop()。你知道吗

相关问题 更多 >

    热门问题