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

Python Discussion :

comment récupérer la valuer dans entry sur une interface tkinter [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Février 2024
    Messages : 2
    Par défaut comment récupérer la valuer dans entry sur une interface tkinter
    Bonjour, je suis débutant et je n'arrive pas à récupérer la valeur dans entry de ce programme python

    le programme ouvre une interface, on peut insérer du texte dans un entry ( GLineEdit_255) mais je n'arrive pas a récupérer la valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    import tkinter as tk
    import tkinter.font as tkFont
    from tkinter import *
    class App:
        def __init__(self, root):
            # setting title
            root.title("Dice Game")
            # setting window size
            width = 487
            height = 339
            screenwidth = root.winfo_screenwidth()
            screenheight = root.winfo_screenheight()
            alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
            root.geometry(alignstr)
            root.resizable(width=False, height=False)
     
            self.entry_value = tk.StringVar()  # Variable to store the value of the entry
     
            GLineEdit_255 = tk.Entry(root, textvariable=self.entry_value)  # Attach the variable to the Entry widget
            GLineEdit_255["bg"] = "#e7e7e7"
            GLineEdit_255["borderwidth"] = "3px"
            ft = tkFont.Font(family='Times', size=18)
            GLineEdit_255["font"] = ft
            GLineEdit_255["fg"] = "#333333"
            GLineEdit_255["justify"] = "center"
            GLineEdit_255["text"] = "Insert number"
            GLineEdit_255["relief"] = "sunken"
            GLineEdit_255.place(x=160, y=180, width=157, height=59)
     
            GLabel_968 = tk.Label(root)
            ft = tkFont.Font(family='Times', size=28)
            GLabel_968["font"] = ft
            GLabel_968["fg"] = "#333333"
            GLabel_968["justify"] = "center"
            GLabel_968["text"] = "Choose a random number"
            GLabel_968.place(x=0, y=110, width=485, height=75)
     
            GLabel_184 = tk.Label(root)
            GLabel_184["activebackground"] = "#dedede"
            GLabel_184["cursor"] = "arrow"
            ft = tkFont.Font(family='Times', size=48)
            GLabel_184["font"] = ft
            GLabel_184["fg"] = "#333333"
            GLabel_184["justify"] = "center"
            GLabel_184["text"] = "Dice Game"
            GLabel_184.place(x=50, y=20, width=379, height=61)
     
            GButton_772 = tk.Button(root, command=self.on_done_button_click)  # Assign a function to the button click event
            GButton_772["bg"] = "#f0f0f0"
            ft = tkFont.Font(family='Times', size=38)
            GButton_772["font"] = ft
            GButton_772["fg"] = "#000000"
            GButton_772["justify"] = "center"
            GButton_772["text"] = "Done"
            GButton_772["relief"] = "raised"
            GButton_772.place(x=140, y=260, width=199, height=60)
     
        def on_done_button_click(self):
            # This method will be called when the "Done" button is clicked
            entry_text = self.entry_value.get() # Get the value from the Entry widget
            print("Value entered:"+entry_text)   # Do whatever you want with the value
     
    if __name__ == "__main__":
     root = tk.Tk()
     app = App(root)
     root.mainloop()

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 214
    Par défaut
    Hello,
    c'est ta ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GLineEdit_255["text"] = "Insert number"
    qui te plombe ton contrôle Entry. D'ailleurs on ne voit pas Insert Number dans ton contrôle.
    Si tu mets cette ligne en commentaire et que tu mets à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     self.entry_value.set("Insert Number")
    cela devrait aller mieux.

    Ami calmant, J.P

  3. #3
    Candidat au Club
    Homme Profil pro
    Stagiaire
    Inscrit en
    Février 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Stagiaire

    Informations forums :
    Inscription : Février 2024
    Messages : 2
    Par défaut
    Merci pour l'aide, j'ai réussi a prendre la valeur

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    je suis débutant
    Dans ce cas, essayez de trouver sur des tutoriels comme le Swinnen par exemple la manière dont sont construits des classes et particulièrement observez l'utilisation du mot clé self.

    La proposition de mon VDD est correcte, mais n'empêchera pas d'autres problèmes. Il faudra revoir comment vous utiliserez vos widgets dans les actions de votre application (App).

    Ensuite, il faut choisir, soit

    soit

    à savoir que import tkinter as tk est un bien meilleur choix.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par GuyInASweater Voir le message
    je suis débutant et je n'arrive pas à récupérer la valeur dans entry de ce programme python
    Accessoirement, écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            self.entry_value = tk.StringVar()  # Variable to store the value of the entry
            cnf = dict(
                        bg = "#e7e7e7", 
                        borderwidth="3px", 
                        font=tkFont.Font(family='Times', size=18), 
                        fg = "#333333",  
                        ...)
            GLineEdit_255 = tk.Entry(root, cnf, textvariable=self.entry_value)  # Attach the variable to the Entry widget
            GLineEdit_255.place(x=160, y=180, width=157, height=59)
    évite d'appeler n fois une fonction alors qu'on peut tout passer dans le même dictionnaire.
    En plus, dans le cas où on écrit text='123' et textvariable=self.e... tk a le bon gout d'ignorer le text=...

    Par contre tel que vous l'avez fait, si on demande que l'affichage soit géré via une variable puis un peu plus tard sans la variable... Tk obéit.

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/08/2018, 15h05
  2. comment récupérer les données dans contact sur une feuille excel?
    Par Granfred dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/01/2009, 15h02
  3. Réponses: 7
    Dernier message: 10/05/2006, 11h51
  4. Réponses: 8
    Dernier message: 26/03/2006, 15h09
  5. [JAVA3D] Comment active-t-on l'alpha sur une texture?
    Par SuperCed dans le forum OpenGL
    Réponses: 3
    Dernier message: 08/06/2005, 10h50

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