IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Combobox Ttk - Besoin de sélectionner un str mais d'en ressorti un float. Si t'as pas compris c'est normal :-)


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Cadre en FPT
    Inscrit en
    Octobre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cadre en FPT
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2022
    Messages : 12
    Points : 2
    Points
    2
    Par défaut Combobox Ttk - Besoin de sélectionner un str mais d'en ressorti un float. Si t'as pas compris c'est normal :-)
    Bonjour à toutes et tous.

    Première demande d'aide pour mes débuts en python.

    Je souhaite ajouter une fonction de conversion dans mon script basé sur la GUI tkinter.

    Pour sélectionner les unités à convertir, j'utilise un tuple avec les noms des unités que l'user pourra lire et sélectionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste_unites_ded=["Psv","Tsv","Gsv","Sv","mSv","µSv","nSv","pSv","Rötgens","mRötgens","µRötgens","Rad","mRad","µRad"]
    J'appel donc cette tuple en "values" dans ma combobox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    choix_unite_ded_origine=StringVar()
    choix_unite_ded_origine.set("...")
    Combobox(page_unites_rad,values=liste_unites_ded,textvariable=choix_unite_ded_origine,width=6,font=("Arial",8)).grid(row=2,column=1)
    Cependant, pour la conversion, le retour en String me rends la tâche très difficile avec la création d'une multitude de conditions...

    Dans l'espoir de me faciliter la vie, j'ai créé une autre tuple avec les valeurs numériques de conversion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    facteur_conversion=[1e15,1e12,3.7e12,1e9,3.7e9,1e6,3.7e3,1e3,0,1e-2,1e-3,1e-5,1e-6,1e-6,1e-8,1e-9,1e-12]
    j'aimerai pouvoir allier les deux, pour que lorsque l'user sélectionne le nom de l'unité dans la combobox, qu'il remonte le facteur de conversion enregistré en float et non la valeur de la tuple en String.

    Dans l'espoir d'avoir pu être compréhensible.

    Je vous remercie d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par judi_cael Voir le message
    j'aimerai pouvoir allier les deux, pour que lorsque l'user sélectionne le nom de l'unité dans la combobox, qu'il remonte le facteur de conversion enregistré en float et non la valeur de la tuple en String.
    Le string sélectionné a un index dans liste_unites_ded qui se récupère via liste.index(...) qu'on peut utiliser pour récupérer le facteur de conversion correspondant depuis l'autre liste (qui ne sont pas tuples...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Cadre en FPT
    Inscrit en
    Octobre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cadre en FPT
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2022
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Bonsoir wiztricks

    Je te remercie pour ta réponse, que je vais tenter de reformuler pour savoir si je suis sur le bon chemin.

    Dans le tuple liste_unites_ded

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    facteur_conversion=(1e15,1e12,3.7e12,1e9,3.7e9,1e6,3.7e3,1e3,0,1e-2,1e-3,1e-5,1e-6,1e-6,1e-8,1e-9,1e-12)
    liste_unites_ded=("Psv","Tsv","Gsv","Sv","mSv","µSv","nSv","pSv","Rötgens","mRötgens","µRötgens","Rad","mRad","µRad")
     
    a =facteur_conversion(liste_unites_ded.index(choix_unite_ded_origine))
     
    resultat = variable_entry * a
     
    print(resultat)
    Cela pourrait coller ?

    Je te remercie pour ton aide.

  4. #4
    Candidat au Club
    Homme Profil pro
    Cadre en FPT
    Inscrit en
    Octobre 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Cadre en FPT
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2022
    Messages : 12
    Points : 2
    Points
    2
    Par défaut
    Voila le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    facteur_conversion=[1e15,1e12,3.7e12,1e9,3.7e9,1e6,3.7e3,1e3,0.0,1e-2,1e-3,1e-5,1e-6,1e-6,1e-8,1e-9,1e-12]
            liste_unites_ded=["Psv","Tsv","Gsv","Sv","mSv","µSv","nSv","pSv","Rötgens","mRötgens","µRötgens","Rad","mRad","µRad"]
     
            str_choix_unite_ded_origine=str(choix_unite_ded_origine.get())
            float_unite1=float(unite1.get().replace(",","."))
     
            f=facteur_conversion[liste_unites_ded.index(str_choix_unite_ded_origine)]
            print(f*float_unite1)
    Cela fonctionne parfaitement, Merci beaucoup wiztricks

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/08/2011, 12h20
  2. Réponses: 9
    Dernier message: 25/04/2008, 21h21
  3. Réponses: 10
    Dernier message: 12/09/2007, 16h25
  4. Réponses: 7
    Dernier message: 30/10/2005, 12h54
  5. [ComboBox] retourner le texte sélectionné
    Par Husqvarna dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo