【发布时间】:2021-02-14 12:05:35
【问题描述】:
我正在尝试创建一个窗口来保存对象的所有当前数据,并让我更改它。我被困在如何使选项菜单保存枚举的值并将选择保存为正确的枚举键。
这是我当前的代码,在按钮点击时被调用:
current = tk.StringVar()
current .set(self.CustomEnum.value)
tk.OptionMenu(infoMenu, current, [e.value for e in CustomEnum]).pack()
这是列表推导的结果:
['Option 1', 'Option 2', 'Option 3']
我更专注于让它正确显示,因为现在菜单中的唯一选项是
Option1 {Option 2} {Option 3}
最小可重现示例:
import tkinter as tk
from enum import Enum
window = tk.Tk()
class CustomEnum(Enum):
Option1 = "Option1"
Option2 = "Option2"
current = tk.StringVar()
current .set(CustomEnum.Option1.value)
tk.OptionMenu(window, current, [e.value for e in CustomEnum]).pack()
window.mainloop()
【问题讨论】:
-
如果您想正确显示它们,请添加
*。即tk.OptionMenu(window, current, *[e.value for e in CustomEnum]).pack() -
不客气。这里有一点documentation 供以后参考。
标签: python tkinter drop-down-menu enums list-comprehension