下拉菜单更改顺序并每次删除一个选项 - Python

时间:2017-07-26 16:09:31

标签: 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',
    '3',
    '4',
}

option = OptionMenu(menu, var, * list)
var.set('Select')

option.grid(row = 1, column = 1)

root.mainloop()

1 个答案:

答案 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),这是一个非常非常糟糕的主意。