Manière plus concise pour configurer tkinter option de menu?
Je suis un débutant en python, normalement, si je veux ajouter une option de menu pour mon programme, je voudrais faire quelque chose comme cela.
from Tkinter import*
root=Tk()
mylist=['a','b','c']
var=StringVar(root)
var.set("Select status")
mymenu=OptionMenu(root,var,*mylist)
mymenu.pack()
mymenu.config(font=('calibri',(10)),bg='white',width=12)
mymenu['menu'].config(font=('calibri',(10)),bg='white')
root.mainloop()
Il fonctionne très bien mais je me demande si il n'y est plus courte de manière à obtenir le même résultat que chaque option de menu prend 7 lignes de code. J'ai créer plusieurs option de menu donc, je suis à la recherche d'un bon et de façon plus simple de le faire.
EDIT:
Quelqu'un l'a souligné à créer la fonction qui permettra de générer de l'option de menu. J'ai donc essayé ce,
from Tkinter import*
def Dropmenu(mylist,status):
var=StringVar(root)
var.set(status)
mymenu=OptionMenu(root,var,*mylist)
mymenu.pack(side=LEFT)
mymenu.config(font=('calibri',(10)),bg='white',width=12)
mymenu['menu'].config(font=('calibri',(10)),bg='white')
root=Tk()
Dropmenu(['a','b','c'],'Select')
root.mainloop()
Mais maintenant, comment puis-je remédier à la "var" pour que je puisse récupérer toutes les valeurs que l'utilisateur a choisi? Selon mon exemple, toutes les option de menu sera le même "var" de la valeur, donc je n'ai aucun moyen d'obtenir le choix que l'utilisateur fait pour les différentes option de menu.
Pour rendre les choses plus clair,disons que si j'ai 2 option de menu
Dropmenu(['a','b','c'],'Select')
Dropmenu(['c','d','e'],'Select')
Si j'utilise
myvalue=var.get()
Depuis deux menus d'option ont les mêmes var nom, comment puis-je récupérer les deux valeurs?
OriginalL'auteur Chris Aung | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
Si vous allez créer plusieurs menus avec la même configuration, je sous-classe OptionMenu au lieu de la définition d'une fonction:
Dans mon exemple, j'ai supposé que la seule chose qui va changer, c'est la options, mais si chaque instance possède son propre couleur d'arrière-plan ou de la police, vous n'avez plus qu'à ajouter, comme un argument à l'
__init__
méthode.Salut, aucune idée sur comment faire de la options dans un par exemple une liste? Au lieu de simplement écrire explicitement? @A. Rodas
Rodas Est-il possible d'avoir le options entrée comme une liste, au lieu de les avoir donnés séparément?
OriginalL'auteur A. Rodas