2017-07-26 1 views
1

Das Python-Dropdown-Menü ändert die Reihenfolge jedes Mal, wenn es ausgeführt wird, und entfernt jedes Mal eine Auswahl. Wie behebst du das?Drop-Down-Menü ändert die Reihenfolge und entfernt jedes Mal eine Auswahl - 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() 

Antwort

2

eine set (eine ungeordnete Struktur) nicht Verwenden Sie Ihre Optionen zu definieren, ein list verwenden, zB:

options = [ # notice the square bracket 
    '1', 
    '2', 
    '3', 
    '4' 
] 
option = OptionMenu(menu, var, options[0], *options) # make sure you define a proper default 
# etc. 

Wie zum Entfernen des ersten Elements - es geschieht, weil Sie didn Definiere das dritte Argument zu OptionMenu nicht, das den Standardwert so festlegt, dass dein erstes Optionenelement darin erweitert wurde.

P.S. Es ist eine sehr, sehr schlechte Idee, Ihre Variablen/Funktionen den gleichen Namen wie integrierte Typen (z. B. list in Ihrem Fall) zu nennen.

Verwandte Themen