Bonjour/soir je suis sous w10 et j'ai un problème avec mon code je cherche depuis quelques jours sur plusieurs forums et aide discord, amis etc mais je n'ai rien trouvé de concluant.

Mon code consiste à récupérer des mails d'un serveur de mail de l'entreprise ou je fais mon stage qui recois des mails pour la verification des sauvegardes d'autres entreprises une fois cela fait une fenêtre tkinter s'ouvre contenant deux boutons, l'un pour ouvrir les mails qui annonce que la sauvegarde à été faites parfaitement et l'autre pour les erreurs et dans ses deux boutons sa génère une nouvelle fenêtre tkinter contenant le contenu du fichier txt correspondant mais j'aurais besoin d'une scrollbar a l'intérieur car on ne voit pas toutes les informations. Je vous envoie un bout de mon code correspondant au menu merci de votre attention et de votre aide.

PS : le fichier test2 contient la fenêtre maitresse du menu, affichage texte et affichage texte 2 sont les boutons qui ouvre des fenêtre.


test2.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
from exchangelib import Credentials, Account
import os
import time
from tkinter import *
from pprint import pformat
from functools import partial
import subprocess
import tkinter as tk
from tkinter import filedialog 
import csv
 
 
#Création de la classe pour initier le lancement du code a l'ouverture de la fenêtre
class Ouvrir:
    def __init__(self, root):
 
        #Configuration du root (Tk)
        self.root = root
        self.root.title = "Afficher"
        self.root.geometry("800x800")
        self.root.config(bg="white")
 
        # Création de la frame
        frame = Frame(self.root)
        frame.place(x=0, y=0, width=800, height=800)
 
        #Création et placement du label contenant les boutons
        titre1 = Label(self.root, text="Fanny Save", font=("Squared Black", 18, "bold"))
        titre1.place(x=330, y = 20)
 
        #Message Informatif 
        texte1 = Label(self.root, text="Les boutons ci-dessus permettent d'ouvrir les Sauvegardes Correctes et les ERRORS", font=("Times New Roman", 12, "bold"))
        texte1.place(x=120, y = 500)
 
        #Version
        version = Label(self.root, text="Version 1.0", font=("Super Script", 10, "italic"))
        version.place(x = 50, y = 20)
 
        #Credits
        credit = Label(self.root, text="Created by : Zaeko", font=("SuperScript", 10, "italic"))
        credit.place(x = 600, y = 20)
 
        #Création des deux boutons permettant d'ouvrir une nouvelle fenêtre contenant le fichier texte des mails
        btn_crea = Button(frame, text="Voir mail OK", command=self.ouvrir, cursor="hand2", font=("Times New Roman", 15, "bold"), bg=("grey"), fg="black").place(x=100, y=350, width=180)
        btn_crea2 = Button(frame, text="Voir mail ERROR", command=self.ouvrir2, cursor="hand2", font=("Times New Roman", 15, "bold"), bg=("grey"), fg="black").place(x=500, y=350, width=180)
 
    #Création de la variable pour le bouton mail ok
    def ouvrir(self):
        import affichage_texte
 
    #Création de la variable pour le bouton mail error
    def ouvrir2(self):
        import affichage_texte2
 
 
#Fonctions obligatoires
root = Tk()
root.title("Fanny Save")
obj = Ouvrir(root)
root.mainloop()
affichage_texte.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
from tkinter import *
 
#Création de la classe pour initier le lancement du code a l'ouverture de la fenêtre
class Ouvrir:
    def __init__(self, root):
 
        #Configuration du root (Tk)
        self.root = root
        self.root.title = "Texte affiché"
        self.root.geometry("800x800")
        self.root.resizable(False, False)
        self.root.config(bg="white")
        self.root.grid_columnconfigure(0, weight=1)
        self.root.grid_rowconfigure(0, weight=1)
 
        #Création de la frame
        frame = Frame(self.root, background="grey")
        frame.place(x=0, y=0, width=800, height=800)
 
        #Appel de la fonction afficher contenant le fichier txt et création de la variable pouvant contenir le fichier texte
        self.afficher()
        label = Label(frame, text=self.texte, font=("Times New Roman", 15, "bold"), fg="black", bg="lightgrey").place(x=0, y=0, width=800, height=800)
 
    #Création de la variable contenant le fichier txt
    def afficher(self):
        file = open("C:/Users/alanc/Desktop/Fanny_Save/mail.txt", 'rb')
        self.texte = file.read()
        file.close()
        return self.texte
 
#Fonctions obligatoires pour la fenêtre
root = Tk()
root.title('Fanny Save Mail Ok')
obj = Ouvrir(root)
root.mainloop()
affichage_texte2.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
from tkinter import *
 
#Création de la classe pour initier le lancement du code a l'ouverture de la fenêtre
class Ouvrir:
    def __init__(self, root):
        #Configuration du root (Tk)
        self.root = root
        self.root.title = "Texte affiché"
        self.root.geometry("800x800")
        self.root.resizable(False, False)
        self.root.config(bg="white")
        self.root.grid_columnconfigure(0, weight=1)
        self.root.grid_rowconfigure(0, weight=1)
 
        #Création de la frame pouvant contenir le texte
        frame = Frame(self.root, background="grey")
        frame.place(x=0, y=0, width=800, height=800)
 
        #Appel a la fonction permettant d'ouvrir le fichier txt dans la fenêtre
        self.afficher2()
        label = Label(frame, text=self.texte2, font=("Times New Roman", 15, "bold"), fg="black", bg="lightgrey").place(x=0, y=0, width=800, height=800)
 
    #Création de la variable pour ouvrir le fichier texte
    def afficher2(self):
        file2 = open("C:/Users/alanc/Desktop/Fanny_Save/mail_error.txt", 'rb')
        self.texte2 = file2.read()
        file2.close()
        return self.texte2
 
#Fonctions obligatoires
root = Tk()
root.title('Fanny Save Mails Errors')
obj = Ouvrir(root)
root.mainloop()
mail.txt
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
001	BOI Sauvegarde SQL : OK	2022-05-30 10:06:23+00:00	
002	JMP3 : Sauvegarde OK	2022-05-30 00:01:27+00:00	
003	MONTARNAL - Sauvegarde OK	2022-05-29 22:05:50+00:00	
004	BATI ORIENT IMPORT : Sauvegarde Volume OK	2022-05-29 21:14:22+00:00	
005	JMP3 : Sauvegarde OK	2022-05-28 23:44:45+00:00	
006	MONTARNAL - Sauvegarde OK	2022-05-28 22:10:22+00:00	
007	LES PLANTS DU VENAISSIN : Sauvegarde OK	2022-05-28 21:10:07+00:00	
008	GAMBUS : Sauvegarde OK	2022-05-28 07:05:17+00:00	
009	BATI ORIENT IMPORT : Sauvegarde OK	2022-05-28 01:54:08+00:00	
010	DOMAINE FONTNOBLES : Sauvegarde OK	2022-05-28 01:28:50+00:00	
011	CCE INGENIERIE : Sauvegarde OK	2022-05-28 00:47:18+00:00	
012	SCM COURTAIS LASZLO : Sauvegarde OK	2022-05-28 00:42:18+00:00	
013	ARCOM : Sauvegarde OK	2022-05-28 00:17:36+00:00	
014	HUGUES CONSTRUCTIONS : Sauvegarde OK	2022-05-28 00:07:57+00:00	
015	JMP3 : Sauvegarde OK	2022-05-28 00:01:40+00:00	
016	LA GRUGIERE DE PERNES : Sauvegarde OK	2022-05-27 23:46:06+00:00	
017	CAVAILLON MULTI TRANSPORT : Sauvegarde OK	2022-05-27 23:44:52+00:00	
018	EVOLUVAP : Sauvegarde OK	2022-05-27 23:33:21+00:00	
019	COGEVA : Sauvegarde SRV2 OK	2022-05-27 23:30:14+00:00	
020	ET POURQUOI PAS BY JOHN : Sauvegarde OK	2022-05-27 23:25:10+00:00	
021	OTTAVIANI AUDITION : Sauvegarde OK	2022-05-27 23:12:42+00:00	
022	DG PEINTURE : Sauvegarde OK	2022-05-27 23:11:10+00:00	
023	CAMA SERVICES : Sauvegarde OK	2022-05-27 23:10:44+00:00	
024	SOL INTER PEINTURE : Sauvegarde OK	2022-05-27 23:07:51+00:00	
025	SERRE FRERES MENERBES : Sauvegarde OK	2022-05-27 22:22:25+00:00	
026	LASZLO : Sauvegarde OK	2022-05-27 22:09:09+00:00	
027	MONTARNAL - Sauvegarde OK	2022-05-27 22:05:57+00:00	
028	LES PLANTS DU VENAISSIN : Sauvegarde OK	2022-05-27 21:10:04+00:00	
029	BOI Sauvegarde SQL : OK	2022-05-27 10:06:35+00:00	
030	GAMBUS : Sauvegarde OK	2022-05-27 07:03:42+00:00	
031	DOMAINE FONTNOBLES : Sauvegarde OK	2022-05-27 01:32:29+00:00	
032	SCM COURTAIS LASZLO : Sauvegarde OK	2022-05-27 00:39:01+00:00	
033	CCE INGENIERIE : Sauvegarde OK	2022-05-27 00:22:36+00:00	
034	ARCOM : Sauvegarde OK	2022-05-27 00:18:52+00:00	
035	HUGUES CONSTRUCTIONS : Sauvegarde OK	2022-05-27 00:07:58+00:00	
036	JMP3 : Sauvegarde OK	2022-05-26 23:45:41+00:00
mail_error.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
001	LE BELIZE : Sauvegarde ERREUR	2022-05-30 11:00:12+00:00	
002	Intel Rapid Storage CABINET DUTTO APT	2022-05-30 07:30:49+00:00	
003	Intel Rapid Storage CABINET DUTTO APT	2022-05-30 06:07:52+00:00	
004	Intel Rapid Storage DG PEINTURE	2022-05-28 23:07:30+00:00	
005	Intel Rapid Storage DG PEINTURE	2022-05-28 22:07:03+00:00	
006	FROID PALOMBI : Sauvegarde Warning : la sauvegarde J-7 va être supprimée.	2022-05-28 04:22:45+00:00	
007	ETUDE AVY ROUGIER Sauvegarde Warning : la sauvegarde J-7 va être supprimée.	2022-05-28 03:48:24+00:00	
008	SERRE FRERES GORDES : Sauvegarde ERREUR	2022-05-27 22:03:51+00:00	
009	LE BELIZE : Sauvegarde ERREUR	2022-05-27 11:00:12+00:00	
010	Intel Rapid Storage CAVAILLON MULTI TRANSPORT	2022-05-27 10:25:19+00:00	
011	Intel Rapid Storage CAVAILLON MULTI TRANSPORT	2022-05-27 09:39:16+00:00	
012	BATI ORIENT IMPORT : Sauvegarde ERREUR	2022-05-27 06:20:12+00:00	
013	FROID PALOMBI : Sauvegarde Warning : la sauvegarde J-7 va être supprimée.	2022-05-27 04:10:25+00:00	
014	ETUDE AVY ROUGIER Sauvegarde Warning : la sauvegarde J-7 va être supprimée.	2022-05-27 03:52:22+00:00