gpt4 book ai didi

python - 如何从字典键设置 tkinter 组合框的值

转载 作者:太空狗 更新时间:2023-10-30 02:09:16 26 4
gpt4 key购买 nike

root = Tk()
my_dict = {'Drosophila melanogaster':1
'Danio rerio': 2,
'Caenorhabditis elegans':3,
'Rattus norvegicus': 4,
'Mus musculus': 5,
'Homo sapiens': 6,
}
combobox_values = "\n".join(my_dict.keys())
organism = ttk.Combobox(root, values=combobox_values)
organism.grid(row=2, column=0, sticky="w", padx=2, pady=2)

我试图将每个字典键用作组合框中的一个选项,但是当我运行我的脚本时,每个单词都变成了一个单独的选项。如果有人能告诉我我做错了什么,我将不胜感激?

最佳答案

你们非常接近!

combobox_values = "\n".join(my_dict.keys())

应该是

combobox_values = my_dict.keys()

通过使用 join ,你从字典中取出所有的键,然后把它们放在一个字符串中!当 Tkinter 尝试描述您的字符串时,它会认为空格与用于分解项目的换行符一样好。


要真正追踪引擎盖下使用的描述有点棘手。 The official docs don't mention

检查源代码 Combobox 继承自 Entry 小部件,但两者都对底层 tcl 进行原始调用。 New Mexico (通常是有信誉的)声称值需要在列表中,但显然字符串也可以。自 strings and lists are very similar in python ,ttk 采取的 fail-slow 方法似乎是合适的……但它没有回答问题……

事实上,这是一个有趣的游戏:尝试破坏构造函数。传递一个随机数?以下所有工作

ttk.Combobox(root, values=12345) 
class Foo:pass
ttk.Combobox(root, values=Foo())
ttk.Combobox(root, values=Foo)

经过进一步调查,最终的 python 调用发生在 Tkinter.py 的第 2058 行(左右,依赖于实现)。如果你真的很好奇,你可以从tcl docs开始追查。进入their detailed widgets section ,特别是“保留额外的项目数据”一章,以了解这些事情如何以及为什么会像他们那样发生

在后两者中,显示方法清楚地表明,输入被包装为它自己的字符串表示形式(与新墨西哥州的解释保持一致),但底层方法仍然含糊其辞

关于python - 如何从字典键设置 tkinter 组合框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37849715/

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