Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tkinter et entry()

    30 octobre 2022 à 19:26:11

    Bonjour a tous, 

    je suis débutant dans le python 3 et je suis coincer actuellement sur un petit problème avec le WIDGET Entry(), c'est a dire que:

    mon entry() est désactiver de bas avec:

    insertResult = Entry(root, state = DISABLED)

    et je ne trouve pas comment faire pour qu'il entre mon résultat dans mon "insertresult" j'avais fait sa:

    x = insertHT.get()
        if x == 0 or not isinstance(x, str):
            raise ValueError(messagebox.showwarning('ATTENTION ',"Erreur dans se que vous avez entrez"))
        else:
            HT = float(0.20) * float(x) / (1 + float(0.20))
            insertResult.set(HT)

    mais la console me retourne : AttributeError: 'Entry' object has no attribute 'set

    aidez moi s'il vous plait :)

    Merci de vos réponse 

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 octobre 2022 à 19:37:37

      Merci d'utiliser la balise Code !=)

      Comme le dit le message d'erreur Entry n'a pas d'attribut set... Cf. la documentation !

      -
      Edité par Anonyme 30 octobre 2022 à 19:38:11

      • Partager sur Facebook
      • Partager sur Twitter
        1 novembre 2022 à 11:27:20

        Entry est un objet, pourquoi la variable dont vous lui donnez le nom ressemble plus à une action ?

        x ne peut pas valoir 0 car get retourne toujours une chaîne de caractères, ce qui inclus que votre test pour vérifier le type de l'objet retourné par cette méthode est inutile.

        Dans votre else, vous devriez utiliser un bloc try-except afin de contrôler le cas où votre float(x) se passe mal.

        Le reste est dit par mon VDD.

        Un exemple,

        from tkinter import (
            Button,
            Entry,
            Tk,
            messagebox,
            END
        )
        
        
        def calculate():
            ht = entry_ht.get().strip()
            assert ht != '0'
            try:
                ht_float = float(ht)
            except ValueError:
                messagebox.showwarning('ATTENTION ', "Erreur dans se que vous avez entrez")
                entry_ht.delete(0, END)
                entry_result.delete(0, END)
                return None
            result = (ht_float * 0.2) / (1 + 0.2)
            entry_result.insert(0, str(result))
        
        
        root = Tk()
        entry_ht = Entry(root)
        entry_result = Entry(root)
        button = Button(root, text="calculer", command=calculate)
        
        entry_ht.pack()
        entry_result.pack()
        button.pack()
        root.mainloop()
        



        -
        Edité par fred1599 1 novembre 2022 à 12:20:27

        • Partager sur Facebook
        • Partager sur Twitter

        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        Tkinter et entry()

        × 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.
        • Editeur
        • Markdown