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 :

Réception des champs d'un formulaire avec .get()


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 17
    Par défaut Réception des champs d'un formulaire avec .get()
    Bonjour,
    J'ai un souci, et j'ai beau m'arracher les cheveux, je ne trouve pas la solution. Peut-être pourrez-vous m'aider.

    Tout d'abord, bonjour à tous. Je suis nouveau ici. Lycéen (en terminale), je débute en programmation Python, alors pardonnez-moi si je pose des questions naïves.
    J'ai un projet à rendre, et comme je disais, je coince sur un truc. Il s'agit d'une sorte de 'pronote' ou 'école directe' simplifiée : c'est à dire une interface de gestion des élèves et de leurs notes.

    J'ai créé un petit formulaire pour saisir quelques données : nom, prénom, profil (élève, prof, administratif)
    Un bouton valider envoie alors sur une fonction, appelée check()
    Dans cette fonction, je récupère les données du formulaire à l'aide d'un get(), et tout va bien.
    Ensuite, j'effectue quelques traitements, dont un test si le profil saisi est celui d'un élève, et dans ce cas, je crée un nouveau formulaire où je demande quelles sont les matières optionnelles (LV1, LV2 et Spécialité).
    Un nouveau bouton valider envoie alors vers la fonction save_mat()

    Et c'est là que ça coince : je veux récupérer les valeurs des champs saisis de la même manière que précédemment, mais j'obtiens un "name 'pso_lv1' is not defined" (pso_lv1 est le nom de l'un des champs saisis).
    Je ne comprends pas pourquoi le get() fonctionne la 1ère fois et pas la seconde.

    Je peux vous joindre le code, mais il est un peu long et je ne voulais pas surcharger le forum pour mon 1er post .

    Merci infiniment de votre aide !
    Th

  2. #2
    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
    Salut,

    Commencez par poster le message d'erreur retourné par Python (plusieurs lignes).

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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Commencez par poster le message d'erreur retourné par Python (plusieurs lignes).

    - W
    Voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.752.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1883, in __call__
        return self.func(*args)
      File "c:\Users\xxx\Desktop\projet-python-isn\main_admin.py", line 73, in save_mat
        ch_lv1 = pso_lv1.get()
    NameError: name 'pso_lv1' is not defined
    Merci
    Th

  4. #4
    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
    Salut,

    Python a toujours raison: la variable globale pso_lv1 n'est pas définie lorsqu'il essaie d'exécuter pso_lv1.get() dans le module main_admin.

    Où/Comment cette variable est-elle définie?

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

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Python a toujours raison: la variable globale pso_lv1 n'est pas définie lorsqu'il essaie d'exécuter pso_lv1.get() dans le module main_admin.

    Où/Comment cette variable est-elle définie?

    - W
    La variable pso_lv1 correspond à une entrée (combobox) dans mon formulaire :
    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
                txt_titre = tk.Label(fen_SaisiePerso, text="Saisie des matières optionnelles", fg='black')
                txt_lv1 = ttk.Label(fen_SaisiePerso, text="LV1", justify='left')
                pso_lv1 = tk.StringVar()
                pso_lv1 = ttk.Combobox(fen_SaisiePerso, values=dico_matieres['lv1'])
                txt_lv1.grid(row=1)
                pso_lv1.current(0)                      # Anglais par défaut
                pso_lv1.grid(row=1, column=1)
                txt_lv2 = ttk.Label(fen_SaisiePerso, text="LV2", justify='left')
                pso_lv2 = tk.StringVar()
                pso_lv2 = ttk.Combobox(fen_SaisiePerso, values=dico_matieres['lv2'])
                pso_lv2.current(1)                      # Espagnol par défaut
                txt_lv2.grid(row=1)
                pso_lv2.grid(row=2, column=1)
                txt_spe = ttk.Label(fen_SaisiePerso, text="Spécialité", justify='left')
                pso_spe = tk.StringVar()
                pso_spe = ttk.Combobox(fen_SaisiePerso, values=dico_matieres['spe'])
                txt_spe.grid(row=3)                     # Pas de spécialité par défaut
                pso_spe.grid(row=3, column=1)
                bt_valider = ttk.Button(fen_SaisiePerso, text='Valider', command=save_mat)
                bt_valider.grid(row=4)
                fen_SaisiePerso.mainloop()

  6. #6
    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
    Salut,

    L'indentation du code me fait dire qu'il y a peu de chance pour que ce soit une variable "globale"...

    - 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. Injecter du HTML avec des champs dans un formulaire
    Par Ceubex dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/12/2012, 17h55
  2. Réponses: 4
    Dernier message: 05/06/2011, 12h28
  3. traitement des champs d'un formulaire avec PHP
    Par alfred5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/04/2011, 15h36
  4. Réponses: 3
    Dernier message: 20/09/2006, 16h07
  5. Verification des champs d'un formulaire
    Par 164emie dans le forum ASP
    Réponses: 5
    Dernier message: 19/11/2003, 14h03

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