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 :

probleme de recuperation d'info


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut probleme de recuperation d'info
    Bonjour à tous,
    Voila moi j'ai un gros problème c'est que je ne sais pas comment recuperer une info dans une Entry d'un Tk pour l'utiliser dans une fonction. J'ai beau chercher sur Internet je ne trouve rien qui puisse m'aider..
    Est-ce que quelqu'un pourrait m'éclairer sur le sujet?
    Merci d'avance
    Voici mon code en piece jointe si sa peut aider
    niga2.py

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    #################
    ###EBAUCHE N°1###
    #################
     
     
     
    minuscules = 'abcdefghijklmnopqrstuvwxyz'
    majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
     
    x=int(input("Choisissez votre clé: "))
    chaine=str(input("Ecrivez votre texte Ã* coder: "))
     
    #Fonction de déchiffrage
     
     
     
    def rotation(chaine, x):
        return chaine[x:] + chaine[:x]
     
    def index(c, chaine):
        for i in range(len(chaine)):
            if (c == chaine[i]):
                 return i
        return -1
     
    def chiffre():
        chaine=chiffre2()
        r_min = rotation(minuscules, x)
        r_maj = rotation(majuscules, x)
        resultat = ''
        for lettre in chaine:
            if lettre in minuscules:
                resultat = resultat + r_min[index(lettre, minuscules)]
            elif lettre in majuscules:
                resultat = resultat + r_maj[index(lettre, majuscules)]
            else:
                resultat = resultat + lettre
        LabelR.configure(text=resultat)
     
    def chiffre2():
        mot=TexteX.get()
        return mot
     
     
    #Fonction de déchiffrage
     
    def rotation2(chaine_cryptée, x):
        return chaine[:x] + chaine[x:]
     
    def index2(c,chaine_cryptée ):
        for i in range(len(chaine)):
            if (c == chaine[i]):
                 return i
        return -1
     
    def dechiffre():
        r_min = rotation2(minuscules, -x)
        r_maj = rotation2(majuscules, -x)
        resultat2 = ''
        for lettre in chaine:
            if lettre in minuscules:
                resultat2 = resultat2 + r_min[index2(lettre, minuscules)]
            elif lettre in majuscules:
                resultat2 = resultat2 + r_maj[index2(lettre, majuscules)]
            else:
                resultat2 = resultat2 + lettre
        return resultat2
     
    def dechiffre2():
        TexteX.set(dechiffre())
     
    chaine_decryptée=dechiffre()
     
    print(chaine_decryptée)
     
     
     
     
     
    '''Tkinter'''
    from tkinter import*
     
     
    #Création de le fenetre
    fenetre = Tk()
    fenetre.title("Codage et décodage")
    fenetre.geometry("700x500")
     
     
     
    Titre= Label(fenetre, text="CODER ET DECODER EN CESAR", fg ='blue', bg ='white', font=("Helvetica", 20))
    Titre.grid(row=0, sticky=N)
     
     
     
    #Zone de saisie du texte
    Texte1= Entry(fenetre, bg ='bisque', fg='maroon',textvariable=TexteX)
    Texte1.grid(row=4, sticky=E)
     
    Texte1label= Label(fenetre, text="Message Ã* coder: ", fg ='black', bg ='white', font=("Helvetica", 13))
    Texte1label.grid(row=5,sticky=E)
     
    #Zone de saisie de la clé de codage
    Key= Entry(fenetre, bg ='bisque', fg='maroon')
    Key.grid(row=6,sticky=E)
     
    Key2 = Label(fenetre, text='clé: ', fg ='black', bg ='white', font=("Helvetica", 11))
    Key2.grid(row=7,sticky=E)
     
     
    #Bouton de codage
    bouton2 = Button(fenetre,text='Coder',command=chiffre)
    bouton2.grid(row =8, sticky =E)
     
    #Bouton de décodage
    bouton3 = Button(fenetre,text='Décoder', command=dechiffre)
    bouton3.grid(row=9, sticky=E)
     
     
    # Zone d'affichage du résultat
    LabelR= Label(fenetre, text="Message codé: ", fg ='black', bg ='white', textvariable=chaine_cryptée)
    LabelR.grid(row=10,sticky=E)
     
     
     
    #Bouton pour quitter
    bouton1 = Button(fenetre,text='Quitter',command=fenetre.destroy)
    bouton1.grid(row=12,sticky=E)

  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,

    C'est pas compliqué de lancer l'interpréteur Python et d'essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> from tkinter import *
    >>> root = Tk()
    >>> v = StringVar()
    >>> e = Entry(textvariable=v)
    >>> e.pack()
    et voilà, j'ai crée une variable v et je l'ai associée à l'entry e.
    Je modifie le contenu de l'Entry:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> e.insert('end', '123')
    et je récupère le contenu de la variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> v.get()
    '123'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Encore un probleme....
    Citation Envoyé par wiztricks Voir le message
    Salut,

    C'est pas compliqué de lancer l'interpréteur Python et d'essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> from tkinter import *
    >>> root = Tk()
    >>> v = StringVar()
    >>> e = Entry(textvariable=v)
    >>> e.pack()
    et voilà, j'ai crée une variable v et je l'ai associée à l'entry e.
    Je modifie le contenu de l'Entry:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> e.insert('end', '123')
    et je récupère le contenu de la variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> v.get()
    '123'
    >>>
    - W

    Je te remercie du coup de main mais j'ai encore un soucis..
    En fait mon programme porte sur le codage césar qui consiste en gros à se déplacer de x lettres dans l'alphabet selon une lettre donnée
    Exemple: B devient F si on prend x=4
    J'ai un peu modifié le programme et du coup je me retrouve avec sa
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    minuscules = 'abcdefghijklmnopqrstuvwxyz'
    majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
     
     
    from tkinter import*
     
     
     
     
     
     
    def rotation(chaine, x):
        return chaine[x:] + chaine[:x]
     
    def index(c, chaine):
        for i in range(len(chaine)):
            if (c == chaine[i]):
                 return i
        return -1
     
    def chiffre(chaine,x):
     
        r_min = rotation(minuscules, x)
        r_maj = rotation(majuscules, x)
        resultat = ''
        for lettre in chaine:
            if lettre in minuscules:
                resultat = resultat + r_min[index(lettre, minuscules)]
            elif lettre in majuscules:
                resultat = resultat + r_maj[index(lettre, majuscules)]
            else:
                resultat = resultat + lettre
        return resultat
     
     
     
     
    #Création de le fenetre
    fenetre = Tk()
    fenetre.title("Codage et décodage")
    fenetre.geometry("700x500")
     
     
    Texte1Label=Label(fenetre, text="Message à coder", fg='black',bg='white', font=("Helvetica", 13))
    Texte1Label.pack()
     
    T=StringVar()
    Texte1= Entry(fenetre, bg ='bisque', fg='maroon',textvariable=T)
    Texte1.pack()
     
     
    KeyLabel= Label(fenetre, text='Clé de codage', fg ='black', bg ='white', font=("Helvetica", 11))
    KeyLabel.pack()
     
    K=StringVar()
    Key= Spinbox(fenetre, from_=0, to=10000000, textvariable=K)
    Key.pack()
     
    #
     
    BoutonCodage= Button(fenetre, text='Coder', command=chiffre(T.get(),int(K.get())))
    BoutonCodage.pack()
     
     
    #
     
    LabelResultat=Label(fenetre, text="Message codé: ", fg ='black', bg ='white', font=("Helvetica", 11))
    LabelResultat.pack()
     
    Resultat=Label(fenetre, bg= 'bisque', fg='maroon', textvariable=chiffre(T.get(),int(K.get())))
    Resultat.pack()
     
     
     
     
    fenetre.mainloop()
    Seulement quand je le lance, je ne reçois plus de message d'erreur par contre impossible d'avoir un resultat dans mon Label quand j'appuie sur le bouton coder
    Pourquoi?
    Merci d'avance de la réponse

  4. #4
    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
    Citation Envoyé par mfezzazi Voir le message
    Seulement quand je le lance, je ne reçois plus de message d'erreur par contre impossible d'avoir un resultat dans mon Label quand j'appuie sur le bouton coder
    Ben, imaginez une fonction "g":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> def g():
    ...     print ('je suis "g"')
    ...
    Puis une fonction "f" qui appellera la fonction passée en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> def f(func):
    ...     if func:
    ...        print ('"f" appelle "func"')
    ...        func()
    ...     else: print('??? pas fe fonction')
    ...
    écrire f(g()) ou f(g) n'aura pas le même comportement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> f(g())
    je suis "g"
    ??? pas fe fonction
    >>> f(g)
    "f" appelle "func"
    je suis "g"
    >>>
    Dans un cas on appelle f avec le résultat de "g" et dans l'autre on l'appelle avec une fonction à appeler "plus tard".
    "plus tard", pose aussi question sur la valeur des paramètres d'appels: chiffre(T.get(),int(K.get()).
    La première mouture de votre code n'avait pas tous ces problèmes...

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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Ben, imaginez une fonction "g":
    J'ai bien saisi l'idée mais impossible de la mettre en oeuvre dans le programme..
    Je n'arrive pas à faire en sorte que mon Label se remplisse de l'information des que j'appuie sur le bouton 'coder'

  6. #6
    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
    Citation Envoyé par mfezzazi Voir le message
    J'ai bien saisi l'idée mais impossible de la mettre en oeuvre dans le programme..
    Je n'arrive pas à faire en sorte que mon Label se remplisse de l'information des que j'appuie sur le bouton 'coder'
    Pour l'instant, çà ne vous servira pas à grand chose puisque vous saviez le faire autrement: LabelR.configure(text=resultat)
    Pour le reste, si vous voulez utiliser des fonctionnalités que vous ne maîtriser pas, il faut prendre le temps d'ouvrir un tuto. : écrire n'importe quoi et venir pleurer ici "çà marche pas" n'est pas une option.

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

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Afficher un résultat sur tkinter
    Salut à tous,
    Alors je suis débutant sur Python, et je rencontre un gros soucis sur un programme de codage César.
    En fait je n'arrive pas à faire en sorte que lorsque que je clique sur le bouton 'Coder', le résultat s'affiche sur un Label que j'ai créé...
    Si quelqu'un de plus expérimenté que moi pourrait m'aider, sa serait super sympa!

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    from tkinter import*
     
     
     
    minuscules = 'abcdefghijklmnopqrstuvwxyz'
    majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
     
     
     
     
    def rotation(chaine, x):
        return chaine[x:] + chaine[:x]
     
    def index(c, chaine):
        for i in range(len(chaine)):
            if (c == chaine[i]):
                 return i
        return -1
     
    def chiffre(chaine,x):
        r_min = rotation(minuscules, x)
        r_maj = rotation(majuscules, x)
        resultat = ''
        for lettre in chaine:
            if lettre in minuscules:
                resultat = resultat + r_min[index(lettre, minuscules)]
            elif lettre in majuscules:
                resultat = resultat + r_maj[index(lettre, majuscules)]
            else:
                resultat = resultat + lettre
        return resultat
     
     
     
     
     
     
    #Création de le fenetre
    fenetre = Tk()
    fenetre.title("Codage et décodage")
    fenetre.geometry("700x500")
     
     
    Titre= Label(fenetre, text="CODER ET DECODER EN CESAR", fg ='blue', bg ='white', font=("Helvetica", 20))
    Titre.pack()
     
    Texte1Label=Label(fenetre, text="Message à coder", fg='black',bg='white', font=("Helvetica", 13))
    Texte1Label.pack()
     
    T=StringVar()
    Texte1= Entry(fenetre, bg ='bisque', fg='maroon',textvariable=T)
    Texte1.pack()
     
     
    KeyLabel= Label(fenetre, text='Clé de codage', fg ='black', bg ='white', font=("Helvetica", 11))
    KeyLabel.pack()
     
    K=StringVar()
    Key= Spinbox(fenetre, from_=0, to=10000000, textvariable=K)
    Key.pack()
     
    #
     
    BoutonCodage= Button(fenetre, text='Coder', command=chiffre(T.get(),int(K.get())))
    BoutonCodage.pack()
     
    #
     
    LabelResultat=Label(fenetre, text="Message codé: ", fg ='black', bg ='white', font=("Helvetica", 11))
    LabelResultat.pack()
     
    chaine=T.get()
    x=int(K.get())
     
    Resultat=Label(fenetre, bg= 'bisque', fg='maroon',textvariable=chiffre(T.get(),int(K.get())))
    Resultat.pack()
     
     
     
     
    fenetre.mainloop()

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    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 : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    Pour écrire dans un label, on peut utiliser cette formulation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label['text'] = 'texte à écrire'
    label est l'objet Label créé...

    P.S Pour les callbacks à associer à un Button, suffit d'aller sur un tutoriel.
    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)

Discussions similaires

  1. Probleme de recuperation des info
    Par nicolas54 dans le forum Langage
    Réponses: 3
    Dernier message: 25/01/2008, 15h56
  2. Problème de récupération d'infos distantes
    Par trattos dans le forum Administration système
    Réponses: 2
    Dernier message: 24/10/2006, 21h37
  3. et récupération des infos
    Par sebos63 dans le forum 4D
    Réponses: 5
    Dernier message: 01/03/2005, 11h52
  4. [VB6]ADODB Command, recuperer l'info d'un RollBack
    Par Mouse dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/05/2003, 16h26
  5. [statusbar] recuperer des infos d'un autre prog
    Par noyax dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/12/2002, 15h52

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