voilà brièvement je voulais que mon texte d'un label change à chaque fois je choisi une élément d'une liste combobox voilà un bout de code qui me casse la tete lol.
##########################pour Combobox######################################"
txtEtiqElem="Longueur d'onde au repos de la raie Considérée (Å) : "
def EtiqElement(event):
global txtEtiqElem
#global label1
if float(ligne_texte1.get())==6562.808:
txtEtiqElem="Longueur d'onde au repos de la raie $H_{\alpha}$ (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==6678.160:
txtEtiqElem="Longueur d'onde au repos de la raie HeI (Singlet) (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==5875.660:
#txtEtiqElem=StringVar()
txtEtiqElem="Longueur d'onde au repos de la raie HeI (D3) (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==5895.942:
#txtEtiqElem=StringVar()
txtEtiqElem="Longueur d'onde au repos de la raie Na (D2) (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==5188.700:
txtEtiqElem="Longueur d'onde au repos de la raie TiII (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==4861.300:
txtEtiqElem="Longueur d'onde au repos de la raie $H_{\beta}$ (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==4934.006:
txtEtiqElem="Longueur d'onde au repos de la raie FeI (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==4923.921:
txtEtiqElem="Longueur d'onde au repos de la raie FeII (Å) : "
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==4685.680:
txtEtiqElem="Longueur d'onde au repos de la raie HeII"
label1['text']=txtEtiqElem
elif float(ligne_texte1.get())==6678.160:
txtEtiqElem="Longueur d'onde au repos de la raie $H_{\gamma}$ (Å) : "
label1['text']=txtEtiqElem
else:
txtEtiqElem="Longueur d'onde au repos de la raie Considérée (Å) : "
label1['text']=txtEtiqElem
#label1.configure(text=txtEtiqElem)
###############################################################################################
label1= Label(cadre3,bg="gray",text=EtiqElement, fg="black", width=40, anchor='w')
label1.grid(row=0, column=0, rowspan=2, padx=2, pady=2)
############################Combobox#############################"
H_alpha=6562.808
HeI_Singlet=6678.160
HeI_D3=5875.660
Na_D2=5895.942
TiII=5188.700
H_beta=4861.300
FeI=4934.006
FeII=4923.921
HeII=4685.680
H_gamma=4340.500
print("Combobox jariri", dicCombobox)
ligne_texte1=Combobox(cadre3, width=10)
if float(dicCombobox[1])<= H_alpha <= float(dicCombobox[2]) and float(dicCombobox[1])<= HeI_Singlet <= float(dicCombobox[2]):
ligne_texte1['values']=(H_alpha, HeI_Singlet)
elif float(dicCombobox[1])<= HeI_D3 <= float(dicCombobox[2]) and float(dicCombobox[1])<= Na_D2 <= float(dicCombobox[2]):
ligne_texte1['values']=(HeI_D3, Na_D2)
elif float(dicCombobox[1])<=TiII <= float(dicCombobox[2]) :
ligne_texte1['values']=(TiII)
elif float(dicCombobox[1])<= H_beta <= float(dicCombobox[2]) and float(dicCombobox[1])<= FeI <= float(dicCombobox[2]) and float(dicCombobox[1])<= FeII <= float(dicCombobox[2]):
ligne_texte1['values']=(H_beta, FeI, FeII)
elif float(dicCombobox[1])<= HeII <= float(dicCombobox[2]):
ligne_texte1['values']=(HeII)
elif float(dicCombobox[1])<= H_gamma <= float(dicCombobox[2]):
ligne_texte1['values']=(H_gamma)
else:
ligne_texte1['values']=(textbox)
ligne_texte1.current(0)
ligne_texte1.bind('<<ComboboxSelected>>', EtiqElement)
##################################################################"
ligne_texte1.grid(row=0, column=1,rowspan=2, padx=2, pady=2)
le problème que lorsque je choisi un aute element rien ne change dans label1
Pour qu'un label soit modifié de manière automatique il me semble qu'il faut obligatoirement passer par une variable StringVar() et un paramètre textvariable pour le Label. Ça ferait donc quelque chose du style:
le fait que la ligne ci-dessus elle est répétée dans une autre ligne en appelant une autre fonction événementielle donc l'astuce était de mettre la fonction EtiqElement() dans l'autre fonction comme ça j'ai pu changer le texte de label sachant que EtiqElement(event) est devenu EtiqElement()
merci GeoffreyKarnbach1 pour votre réponse également c'est hyper gentil
cordialement je poserai un autre problème que je rencontre dans mon projet merci
mise à jour de texte de label tkinter
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Voila je pense que ca devrait aller.