Bonjour � tous,
Je r�alise une interface pour ma BdD de citations (Auteurs, Citations...)
Je souhaite lancer au moyen d'un menu Tkinter un script python qui ouvrira une nouvelle fen�tre avec les champ de saisie pour enregistrer les auteurs.
Mes fichiers :
frontend.py pour mon interface graphique.
frontend_auteur.py pour la saisie des Auteurs
main.py pour les instruction d'�criture dans ma BdD.
Et je n'arrive pas � lancer le script "frontend_auteur.py"
J'ai le message suivant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 [Running] python -u "c:\DevPython_Santiago\menesis_database_projet-02\frontend.py" Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\charlelie\Anaconda3\lib\tkinter\__init__.py", line 1705, in __call__ return self.func(*args) File "c:\DevPython_Santiago\menesis_database_projet-02\frontend.py", line 9, in runauteur run1 = subprocess.run(["start python frontend_auteur.py"]) NameError: name 'subprocess' is not defined
Voici donc mes fichiers :
frontend.py
frontend_auteur.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 # -*- coding: utf-8 -*- from tkinter import* from main import* # syntaxe pour appeller un autre fichier py + fonction from tkinter import font from subprocess import*# Module permettant de lancer des programmes "Run" defrunauteur (): run1 = subprocess.run(["start python frontend_auteur.py"]) #================== Création du constructeur graphique ================================= fenetre_pce =Tk() # Création d'un constructeur #======== Dimensionnement de la fenetre_pce ================================================= # Fonction centrer fenêtre screen_x =int(fenetre_pce.winfo_screenwidth()) screen_y =int(fenetre_pce.winfo_screenheight()) #fenetre_pce_x = 1600 #fenetre_pce_y = 900 fenetre_pce_x =1260 fenetre_pce_y =720 pos_x = (screen_x //2) - (fenetre_pce_x //2) pos_y = (screen_y //2) - (fenetre_pce_y //2) # Attention le 1er facteur est x ensuite + geo ="{}x{}+{}+{}".format(fenetre_pce_x, fenetre_pce_y, pos_x, pos_y) fenetre_pce.geometry(geo) fenetre_pce.resizable(width=False,height=False) # Fenêtre modifiable True or False #============= FENETRE FIN ============================================================== fenetre_pce.iconbitmap("img/search.ico") ### Changement de l'icone de la fenêtre [l'icone doit être placé dans le répertoire racine de l'application ou un autre répertoire img/...] #=================== Création d'un menu ================================================= menubar = Menu(fenetre_pce,borderwidth=20, relief=GROOVE) # Création de la FRAME pour placer les menus dans le constructeur ==> fenetre =Tk() # Création d'un constructeur menuFichier = Menu(menubar, tearoff=0) # Création du menu "Fichier" menubar.add_cascade(label="Fichier", menu=menuFichier) # Rattachement des commandes au menu "Fichier" menuFichier.add_command(label="Créer") menuFichier.add_command(label="Ouvrir",) menuFichier.add_command(label="Editer") menuFichier.add_separator() # Ligne de séparation menuFichier.add_command(label="Quitter", command=fenetre_pce.quit) menuEdition = Menu(menubar, tearoff=0) menubar.add_cascade(label="Edition", menu=menuEdition) menuEdition.add_command(label="Couper") menuEdition.add_command(label="Copier") menuEdition.add_command(label="Coller") menuEdition.add_command(label="Créer") menuAuteur = Menu(menubar, tearoff=0) menubar.add_cascade(label="Auteur", menu=menuAuteur) menuAuteur.add_command(label="Créer", command=runauteur) menuAide = Menu(menubar, tearoff=0) menubar.add_cascade(label="Aide", menu=menuAide) menuAide.add_command(label="A propos") #================== FERMETURE DES BOUCLES ============================================== fenetre_pce.config(menu=menubar) # Configuration et print menu fenetre_pce.mainloop() # Boucle principale
main.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 # -*- coding: utf-8 -*- from tkinter import* from main import*# syntaxe pour appeller un autre fichier py + fonction from tkinter import font #================== Création du constructeur graphique ================================= fenetre_pce =Tk() # Création d'un constructeur #======== Dimensionnement de la fenetre_pce ================================================= # Fonction centrer fenêtre screen_x =int(fenetre_pce.winfo_screenwidth()) screen_y =int(fenetre_pce.winfo_screenheight()) fenetre_pce_x =800 fenetre_pce_y =600 pos_x = (screen_x //2) - (fenetre_pce_x //2) pos_y = (screen_y //2) - (fenetre_pce_y //2) # Attention le 1er facteur est x ensuite + geo ="{}x{}+{}+{}".format(fenetre_pce_x, fenetre_pce_y, pos_x, pos_y) fenetre_pce.geometry(geo) fenetre_pce.resizable(width=False,height=False) # Fenêtre modifiable True or False #============= FENETRE FIN ============================================================== fenetre_pce.iconbitmap("img/search.ico") ### Changement de l'icone de la fenêtre [l'icone doit être placé dans le répertoire racine de l'application ou un autre répertoire img/...] # Champs de saisie ======================== labelAuteur = Label(fenetre_pce, text="Auteur", font=("Arial", 12,"bold")) labelAuteur.place(x=30,y=38) entreeAuteur = Entry (fenetre_pce, width="50",font=("Arial", 12,"bold")) entreeAuteur.place(x=30,y=65) labelInfo = Label(fenetre_pce, text="Information", font=("Arial", 12,"bold")) labelInfo.place(x=30,y=100) entreeInfo = Text(fenetre_pce, width="90", height="10") entreeInfo.place(x=30,y=127) ##### # Vous devez transmettre à la fonction Text.get() un index de début et de fin indiquant la partie du texte que vous souhaitez Text.get() dans le widget Text . ##### boutonEnregistrer = Button(fenetre_pce, text='Enregistrer', command=lambda : enregister(entreeAuteur.get(), entreeInfo.get('1.0', END))) boutonEnregistrer.place(x=700,y=400) #================== FERMETURE DES BOUCLES ============================================== fenetre_pce.mainloop() # Boucle principale
merci beaucoup par avance pour votre aide.
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 # -*- coding: utf-8 -*- import sqlite3 #=================== Insertion des données dans database ================================================ defenregister(auteur_auteur, auteur_info): try: connection = sqlite3.connect('mnesis.db') # Connection à la BdD cursor = connection.cursor() # création du curseur new_auteur = (cursor.lastrowid, auteur_auteur, auteur_info) # Récupération des valeurs des boutons cursor.execute('INSERTINTO tb_auteur VALUES(?,?,?)',new_auteur) # les (?,?,?) représentent les valeurs qui sont renseignées dans la variable new_auteur exceptExceptionas e: print("ERREUR",e) connection.rollback() finally: cursor.close() connection.commit() # Valider l'enregistrement dans la database connection.close() ## Fermeture de la connection
Partager