Python 3.x 下拉菜单每次更改顺序并删除一个选项—Python

Python 3.x 下拉菜单每次更改顺序并删除一个选项—Python,python-3.x,tkinter,Python 3.x,Tkinter,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',

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

不要使用
集合
(无序结构)来定义选项,请使用
列表
,例如:

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
,因此您的第一个options元素被扩展到它中

另外,将变量/函数命名为与内置类型相同的名称是一个非常非常糟糕的主意(例如,在您的情况下,
list