gpt4 book ai didi

python - 按字母顺序对 Tkinter 选项菜单进行排序?

转载 作者:行者123 更新时间:2023-11-30 22:22:52 25 4
gpt4 key购买 nike

我正在尝试在 Tkinter 中创建一个按字母顺序列出数据的 OptionMenu,但我不知道如何实现。

这是我的 OptionMenu 数据集代码。 (随着我开发程序,这将扩展)。

data={
'Actually Additions Atomic Reconstructor',
'Advanced Mortars',
'Artisan Worktables',
'Extra Utilities Crusher',
'Extra Utilities Resonator',
'Initial Inventory',
'JEI Hide',
'JEI RemoveAndHide',
'Ore Dictionary Add',
'Ore Dictionary Create',
'Ore Dictionary Remove',
'Seed Drops'
}
<小时/>

这是我的 OptionMenu 代码。

var = tkinter.StringVar()
var.set('Advanced Mortars')
p = tkinter.OptionMenu(window, var, *data)
p.config(font='Helvetica 12 bold')
p.pack()

每次我运行代码并打开选项菜单时,所有内容都会随机打乱。如何按字母顺序排序?

最佳答案

由于data是一个集合,在python中是一个无序集合,所以数据总是会被打乱。由于 data 看起来已经排序,解决此问题的一个简单方法是将 data 更改为列表,这是一个有序集合:

data=[
'Actually Additions Atomic Reconstructor',
'Advanced Mortars',
...
]

如果你的数据必须是一个集合,你也可以预先用sorted()对其进行排序。 :

data = sorted(data)

当我运行此代码时,您的代码运行良好:

from tkinter import *

data={
'Actually Additions Atomic Reconstructor',
'Advanced Mortars',
'Artisan Worktables',
'Extra Utilities Crusher',
'Extra Utilities Resonator',
'Initial Inventory',
'JEI Hide',
'JEI RemoveAndHide',
'Ore Dictionary Add',
'Ore Dictionary Create',
'Ore Dictionary Remove',
'Seed Drops'
}

data = sorted(data)

master = Tk()

var = StringVar(master)
var.set('Advanced Mortars')
p = OptionMenu(master, var, *data)
p.config(font='Helvetica 12 bold')
p.pack()

关于python - 按字母顺序对 Tkinter 选项菜单进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199486/

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