Python下拉菜单每次运行时都会更改顺序,每次都会删除一个选项。你是如何解决这个问题的。
from tkinter import *
from tkinter.ttk import *
root = Tk()
root.title("Menu")
menu = Frame(root)
menu.pack(pady = 5, padx = 50)
var = StringVar(root)
list = {
'1',
'2',
'3',
'4',
}
option = OptionMenu(menu, var, * list)
var.set('Select')
option.grid(row = 1, column = 1)
root.mainloop()
答案 0 :(得分:2)
请勿使用set
(无序结构)来定义您的选项,请使用list
,例如:
options = [ # notice the square bracket
'1',
'2',
'3',
'4'
]
option = OptionMenu(menu, var, options[0], *options) # make sure you define a proper default
# etc.
至于删除第一个元素 - 它发生了,因为你没有定义OptionMenu
的第三个参数,它设置了默认值,所以你的第一个选项元素被扩展到它。
P.S。将变量/函数命名为与内置类型相同的名称(例如,在您的情况下为list
),这是一个非常非常糟糕的主意。