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 :

Utiliser une scrollbar dans une nouvelle fenêtre Tkinter pouvant scroller le contenu d'un fichier txt


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Cybersécurité et Developpement
    Inscrit en
    Juin 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Etudiant en Cybersécurité et Developpement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 3
    Par défaut Utiliser une scrollbar dans une nouvelle fenêtre Tkinter pouvant scroller le contenu d'un fichier txt
    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

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Salut,

    Ma lecture en diagonale de votre code me fait dire que vous affichez le texte lu dans un Label. Or une Scrollbar ne peut s'ajouter (facilement) qu'à des widgets "scrollables" comme Text, Canvas, Listbox,...

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant en Cybersécurité et Developpement
    Inscrit en
    Juin 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Etudiant en Cybersécurité et Developpement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2022
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Ma lecture en diagonale de votre code me fait dire que vous affichez le texte lu dans un Label. Or une Scrollbar ne peut s'ajouter (facilement) qu'à des widgets "scrollables" comme Text, Canvas, Listbox,...

    - W
    Bonjour merci de votre réponse rapide c'est super gentil de votre part de vous proposer de m'aide.
    Je devrais mettre un canvas Text dans ce cas comment je pourrais faire svp ? (désolé j'ai encore un niveau assez faible en python je commence a peine à apprendre les libs x) )

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Citation Envoyé par Zaeko Voir le message
    Je devrais mettre un canvas Text dans ce cas comment je pourrais faire svp ?
    Vous trouvez une documentation sur les widgets que vous voulez utiliser.
    Si c'est le widget Text, Python vient avec le ScrolledText. Pour les autres, si vous ne vous en sortez pas avec la documentation, il y a plein d'exemples sur Internet.

    Citation Envoyé par Zaeko Voir le message
    (désolé j'ai encore un niveau assez faible en python je commence a peine à apprendre les libs x) )
    ah ben prenez le temps, car c'est quand le choses se compliquent qu'elles deviennent intéressantes.

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

Discussions similaires

  1. [Débutant][HTML]Ouvrir le résultat d'un formulaire dans une nouvelle fenêtre
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/09/2006, 12h26
  2. [Struts] Ouvrir dans une nouvelle fenêtre
    Par vallica dans le forum Struts 1
    Réponses: 4
    Dernier message: 17/05/2006, 15h54
  3. Réponses: 15
    Dernier message: 02/03/2006, 15h34
  4. ouvrir une nouvelle fenêtre dans une taille déterminé
    Par lnikolanta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2005, 15h26
  5. Ouvrir un lien dans une nouvelle fenêtre
    Par Le Lézard dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2004, 14h43

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