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 :

Enregistrement dans sqlite depuis une toplevel()


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Enregistrement dans sqlite depuis une toplevel()
    Bonjour à tous,

    Je débute avec Python et Tkinter.
    J'arrive à enregistrer des données de mon formulaire dans SQLITE lorsque je suis sur la fenêtre principale.
    je souhaite maintenant que ce formulaire soit dans une Toplevel()
    j'ai rencontré des problèmes de portée de variable (le formulaire étant dans une nouvelle fonction) mais je pense avoir résolu.
    Actuellement mes données de formulaire n'arrivent pas dans ma bdd et je ne comprends pas pourquoi.
    la console m'affiche:
    <bound method Entry.get of <tkinter.Entry object .!toplevel.!entry>>
    Pourriez-vous m'aider?

    Voici le code:

    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
    # -*- coding: utf-8 -*-
     
    from shutil import copyfile
    from tkinter import ttk
    import tkinter as tk
    from tkinter import *
    from tkinter import filedialog 
    import sqlite3  
     
     
    def fen2():
        newWindow = Toplevel(root)
        newWindow.title("liste abonnés")
        newWindow.geometry("300x300")    
     
        # Label & Entry name
        lblName = Label(newWindow , text = "Nom" ,  bg="black" , fg = "yellow")
        lblName.place(x=5 , y = 5 , width = 155)
        entryName2 = Entry(newWindow)
        entryName2.place(x = 5,  y =25 , width=380) 
        entryPhone2 = Entry(newWindow)
        entryPhone2.place(x = 5,  y =45 , width=380) 
        entryMore2 = Entry(newWindow)
        entryMore2.place(x = 5,  y =65 , width=380)     
     
        # Command Button
        bAdd = Button(newWindow , text = "enregistrer" , bg="white" , fg = "blue" , command = ajouter)
        bAdd.place(x= 5 ,  y = 85 , width = 155) 
     
        global name2, phone2, more2
     
        name2 = entryName2.get
        phone2 = entryPhone2.get
        more2 = entryMore2.get
     
    def ajouter():    
        # Create connection
        conn = sqlite3.connect('database.db')
        cur = conn.cursor()
        #Insert data
        print(name2)
        cur.execute("INSERT INTO customers (`name` , `phone`, `moreinfo`) VALUES (?,?,?)", (str(name2) , str(phone2), str(more2)))
        conn.close()
     
    #******fenetre principale********
     
    root = Tk()
    root.title("Address Book")
    root.geometry("200x200")
     
    # Add Title
    lblTitle = Label(root , text = "Abonnés" , font = ("Arial" , 21) , bg="blue" , fg = "white" )
    lblTitle.place(x=0 , y=0 , width=250)
     
    bOuvr= Button(root , text = "formulaire" , bg="white" , fg = "black" , command = fen2)
    bOuvr.place(x= 5 ,  y = 40 , width = 155)
     
    root.mainloop()

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

    Citation Envoyé par fab60 Voir le message
    la console m'affiche:
    <bound method Entry.get of <tkinter.Entry object .!toplevel.!entry>>
    entry.get est une méthode, entry.get() appelle la méthode et retourne son résultat.

    Citation Envoyé par fab60 Voir le message
    je souhaite maintenant que ce formulaire soit dans une Toplevel()
    ]je souhaite maintenant que ce formulaire soit dans une Toplevel()
    Techniquement, çà s'appelle "boîte de dialogue".
    Vous avez les détails de leur mise en œuvre sur effbot que vous retrouvez dans tkinter.commondialog et tkinter.simpledialog.


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

Discussions similaires

  1. [Python 3.X] Récupération d'une variable en frontend pour confirmer un enregistrement dans sqlite
    Par lagratteCchouette dans le forum Général Python
    Réponses: 14
    Dernier message: 15/04/2019, 23h07
  2. [ZF 1.9] Récupérer les resources (déclarée dans Bootstrap) depuis une classe "hors" MVC
    Par cyrille37 dans le forum Autres composants
    Réponses: 2
    Dernier message: 05/09/2009, 14h28
  3. Passer un paramètre dans Include, depuis une boucle
    Par Xandar dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/05/2009, 10h36
  4. Afficher une image dans rave depuis une base oracle
    Par Bourak dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/06/2007, 11h58
  5. Réponses: 1
    Dernier message: 25/05/2007, 14h33

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