Tkinter problème de commande
Résolu/Fermé
kymer_officiel
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
-
Modifié le 29 oct. 2020 à 11:48
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 6 nov. 2020 à 13:25
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 6 nov. 2020 à 13:25
A voir également:
- Tkinter problème de commande
- Invite de commande - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
- Commande scannow - Guide
6 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 5 nov. 2020 à 16:22
Modifié le 5 nov. 2020 à 16:22
Bonjour Kymer,
OK, d'autant que tu avais déjà résolu le problème en mode console
Avec interface graphique, c'est différent, il faut tenir compte de la gestion des évènements
Ce que tu fait dans ton code tel qu'il est actuellement :
1_ Tu crée une fenêtre avec un Label "prénom" et une Entry pour le saisir, et un Label "age" et
une autre Entry pour le saisir
2_ Tu initialise les 2 Entry avec le chiffre 1
3_ Tu crée un bouton pour créer un compte
4_ Ensuite, tu crée la base de données, tu crois que tu récupères p et a:
mais, je te l'ai dit, ce n'est pas comme ça
5_ ensuite tu fermes la connexion à la base de données
6_ quand on clique le bouton, on appelle Creation() qui est censée insérer p et a dans la base,
mais la connexion est déjà fermée ! (point 5 ci -dessus)
OK, d'autant que tu avais déjà résolu le problème en mode console
Avec interface graphique, c'est différent, il faut tenir compte de la gestion des évènements
Ce que tu fait dans ton code tel qu'il est actuellement :
1_ Tu crée une fenêtre avec un Label "prénom" et une Entry pour le saisir, et un Label "age" et
une autre Entry pour le saisir
2_ Tu initialise les 2 Entry avec le chiffre 1
3_ Tu crée un bouton pour créer un compte
4_ Ensuite, tu crée la base de données, tu crois que tu récupères p et a:
p = Etiquette1 a = Etiquette2
mais, je te l'ai dit, ce n'est pas comme ça
5_ ensuite tu fermes la connexion à la base de données
6_ quand on clique le bouton, on appelle Creation() qui est censée insérer p et a dans la base,
mais la connexion est déjà fermée ! (point 5 ci -dessus)
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 29 oct. 2020 à 13:55
Modifié le 29 oct. 2020 à 13:55
Bonjour,
A mon avis, quand on appuie sur le bouton 'crée un nouveau compte' qui lance la fonction
Creation(), la connexion à la BDD est déjà close et donc cursor.execute
ne peut pas se faire...
De plus pour récupérer le contenu des entry, il ne suffit pas de faire:
p = Etiquette1
il existe une méthode Python pour ça
A mon avis, quand on appuie sur le bouton 'crée un nouveau compte' qui lance la fonction
Creation(), la connexion à la BDD est déjà close et donc cursor.execute
ne peut pas se faire...
De plus pour récupérer le contenu des entry, il ne suffit pas de faire:
p = Etiquette1
il existe une méthode Python pour ça
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
30 oct. 2020 à 10:11
30 oct. 2020 à 10:11
Bonjour,
de plus, c'est le contenu de entree1 et entree2 que tu veux récupérer
pas celui de Etiquette1, Etiquette2 ...
de plus, c'est le contenu de entree1 et entree2 que tu veux récupérer
pas celui de Etiquette1, Etiquette2 ...
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
2 nov. 2020 à 10:39
2 nov. 2020 à 10:39
Bonjour Kymer,
Alors as-tu résolu le problème ?
Alors as-tu résolu le problème ?
kymer_officiel
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
5 nov. 2020 à 14:18
5 nov. 2020 à 14:18
bonjour, excuser moi j'ai un problème avec mon ordinateur du coup il m'est difficile d'avancer.
je vient de voir vos messages et je vais voir se que je peux faire;
encore désoler de vous avoir répondu avec se retard.
je vient de voir vos messages et je vais voir se que je peux faire;
encore désoler de vous avoir répondu avec se retard.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kymer_officiel
Messages postés
38
Date d'inscription
mardi 20 novembre 2018
Statut
Membre
Dernière intervention
11 décembre 2020
6 nov. 2020 à 11:57
6 nov. 2020 à 11:57
bonjour,
D'accord je vois se que tu veux dire, et j'ai réussi.
voici mon code
D'accord je vois se que tu veux dire, et j'ai réussi.
voici mon code
import sqlite3 from tkinter import * fenetre1= Tk() fenetre1.geometry("380x380+500+200") fenetre1.resizable(width=NO,height=NO) Etiquette1=Label(fenetre1,text='Prénom').place(x=100,y=45) entree1=Entry(fenetre1,width=10) entree1.insert(0,1) entree1.place(x=100,y=65) Etiquette2=Label(fenetre1,text='Age').place(x=200,y=45) entree2=Entry(fenetre1,width=10) entree2.insert(0,1) entree2.place(x=200,y=65) """p = entree1.get() a = entree2.get()""" def Creation(): p = entree1.get() a = entree2.get() conn = sqlite3.connect('baseDonnees.db') cursor = conn.cursor() cursor.execute("""CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,name TEXT,age INTEGER)""") conn.commit() cursor.execute("""INSERT INTO users(name, age) VALUES(?, ?)""", (p, a)) conn.commit() cursor.close() conn.close() bouton1=Button(fenetre1,text='crée un nouveau compte',command=Creation) bouton1.place(x=150,y=300) fenetre1.mainloop()
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
6 nov. 2020 à 13:25
6 nov. 2020 à 13:25
Hola Kymer,
Dans ta fonction, tu refait la création de la table à chaque fois
Moi, je fait plutôt comme ça:
Dans ta fonction, tu refait la création de la table à chaque fois
Moi, je fait plutôt comme ça:
import sqlite3 from tkinter import * conn = sqlite3.connect('baseDonnees.db') cursor = conn.cursor() cursor.execute("""CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,name TEXT,age INTEGER)""") conn.commit() def Creation(): a = entree2.get() p = entree1.get() cursor.execute("""INSERT INTO users(name, age) VALUES(?, ?)""", (p, a)) conn.commit() #Affichage du contenu de la BDD cursor.execute('select * from users') for records in cursor: for k in range (len(records)): print(records[k], end = ' ') print('\n') def quitter(): cursor.close() conn.close() fenetre1.quit() fenetre1= Tk() fenetre1.geometry("380x200+500+200") fenetre1.title('Base de données') menubar = Menu(fenetre1) filemenu = Menu(menubar, tearoff=0) menubar.add_cascade(label="Fichier", menu=filemenu) filemenu.add_command(label="Quitter", command=quitter) fenetre1.config(menu=menubar) Label(fenetre1,text='Prénom').place(x=100,y=45) entree1=Entry(fenetre1,width=10) entree1.place(x=100,y=65) entree1.focus() Label(fenetre1,text='Age').place(x=200,y=45) entree2=Entry(fenetre1,width=10) entree2.place(x=200,y=65) bouton1=Button(fenetre1,text='Créer un nouveau compte',command=Creation) bouton1.place(x=100,y=100) fenetre1.mainloop()