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 :

Methode .get et widget Entry


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Methode .get et widget Entry
    Bonjour à tous.

    J'ai actuellement un problème avec la methode .get. Celle-ci ne fonctionne pas mais je ne voie pas pourquoi.

    Je dois créer un script me donnant les informations présentent dans un fichier excel. Jusque là pas de problème que ce soit avec des Label ou des entry.
    Mais je dois aussi pouvoir via l'interface tkinter mettre a jour les mêmes informations et là ça coince. Pour l'instant je suis bloqué sur la mise àa jour de l'affichage du text dans ENtry.
    Je pense ensuite écraser mon ancien fichier excel par un nouveau car je ne sais pas encore comment faire pour faire une mise a jour.

    Voici le code erreur :
    MAJ_V1=entry_1.get()
    UnboundLocalError: local variable 'entry_1' referenced before assignment

    Merci beaucoup d'avoir lu mon message en espérant que la solution soit pour vous évidente

    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
     
     
    #coding: utf8
     
    from Tkinter import *
    import xlrd, xlwt
    import os
     
    my_window=Tk()
     
    my_window.geometry('400x400+100+100')
    my_window.title("Paramétres")
    my_window.iconbitmap("C:/Users/nherv/Dropbox/logo.ico")
    titre = Label(my_window,text="Paramétres et constantes :",font = "Times 12 bold", underline = 1).pack()
     
    Label_window = Label(my_window, text="Variable est constantes")
    #Mettre l'icone de la fenetre
     
    """ Fonction de mise a jour pour recreé le fichier excel """
    def MAJ():
        MAJ_V1=entry_1.get()
        ma_var1.set(MAJ_V1)
        entry_1= Entry(my_window,state=NORMAL,width='50',textvariable=MAJ_V1,justify='left',bg="#DDD8D8",relief=FLAT).place(x=20,y=100)
     
    #initialisation du bouton
    button=Button(my_window,text = "ENREGISTRER", font ="Times 12 bold", command= MAJ).place(x="250",y="350")
     
    #Les différentes text (Label) a afficher
    chapitre1 = Label(my_window,text="Les constantes :",fg = "red",font = "Times 12 bold").place(x="20",y="50")
    chapitre11= Label(my_window,text="Emplacement GDB RECOLEMENT :",font = "Times 10").place(x="20",y="75")
     
    #Ouverture fichier excel
    myBook = xlrd.open_workbook('Classeur1.xls')
    feuille_1 = myBook.sheet_by_name("Feuil1")
    #Recherche de la valeur contenu dans la cellule A1 de le feuille 1
    V1 = feuille_1.cell_value(rowx=0, colx=0)
    ma_var1 = StringVar()
    ma_var1.set(V1)
     
    print V1
    #Affichage de la valeur en A1 dans le widget entry_1
    entry_1 = Entry(my_window,state=NORMAL,width='50',textvariable=ma_var1,justify='left',bg="#DDD8D8",relief=FLAT).place(x=20,y=100)
     
    my_window.mainloop()
    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 292
    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 292
    Points : 36 788
    Points
    36 788
    Par défaut
    Salut,

    Mettez en commentaire la ligne 23 (entry_1= Entry(...)) et le .get précédent tombera en marche.

    "UnboundLocalError" est un message d'erreur qui devrait être familier car on le rencontre dans ses premiers pas les fonctions et la portée des variables. Sûr que si vous voulez vous jeter dans tkinter sans maîtriser les bases, vous allez souquer...

    - W

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Merci wiztricks.

    Merci pour les infos.
    Je vais donc pour l'instant faire cela sans modifications via l'interface Tkinter.

    Je retourne a mes bouquins pour revoir les bases et j'espère d'ici peu pouvoir venir poster un code correct.

    Bonne journée

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/09/2005, 12h17
  2. prob tres simple, form, method get
    Par killy-kun dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 25/08/2005, 10h29
  3. Faire Choix du fichier destination methode GET grace a JS
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2005, 15h26
  4. la méthode get du Net::telnet
    Par BENCHEKROUN dans le forum Modules
    Réponses: 4
    Dernier message: 25/05/2005, 12h31
  5. probleme avec methode get
    Par Tr@nkill dans le forum ASP
    Réponses: 2
    Dernier message: 12/05/2005, 13h54

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