2009-04-09 8 views
1

J'ai une liste appelée 'optionlist' qui peut changer la longueur de jour en jour, mais je veux une boîte déroulante tkinter pour pouvoir en sélectionner quelque chose.Passer à la méthode python basé sur la longueur d'une liste

Voici un exemple de la façon de définir une OptionMenu Tkinter:

opt1 = OptionMenu(root, var1, 'A', 'B', 'C') 

A, B et C sont les options que vous pouvez choisir. Le problème présenté ici est que, même si le menu Option est flexible et permet autant d'options que vous le souhaitez, vous devez savoir exactement combien vous voulez quand vous écrivez le code. Ce n'est pas une liste ou un tuple qui est passé.

Je me demande si quelqu'un sait tout kung-fu pour faire ce donc je ne dois pas faire:

if len(optionlist) == 1: 
    opt1 = OptionMenu(root, var1, optionlist[0]) 
if len(optionlist) == 2: 
    opt1 = OptionMenu(root, var1, optionlist[0], optionlist[1]) 
etc, etc, etc 

Je sais que vous pouvez définir une liste comme ceci:

elements = [client.get('element') for client in clientlist] 

J'espère que quelque chose de similaire peut être fait en passant aussi aux méthodes.

Répondre

11

Vous voulez le * operator:

opt1 = OptionMenu(root, var1, *optionlist) 
Questions connexes