Partage
  • Partager sur Facebook
  • Partager sur Twitter

barre de progression et fichier batch

    19 juillet 2019 à 13:31:30

    Bonjour à tous,

    Je vous écris car je rencontre un problème pour lequel je n'ai pas trouvé de solution. J'aimerais pouvoir créer une barre de progression avec tkinter, créer un bouton qui, lorsqu'on clique dessus, lance un script batch, et associer ma barre de progression à l'exécution de mon script batch.

    Pour le moment, j'ai réussi à créer mon bouton, l'associer au fichier batch que je souhaite pour qu'il se lance lors d'un clic et créer ma barre de progression. Il ne me reste plus qu'à l'associer à l'exécution du batch.

    Quelqu'un aurait une idée ?

    Merci merci :)

    # On importe Tkinter
    from tkinter import ttk
    from tkinter import *
    from PIL import Image, ImageTk
    from PIL import Image, ImageTk 
    import subprocess
    import tkinter as tk
    import time
    import threading
    import tkinter.font as tkfont
    
    
    
    # On crée une fenêtre, racine de notre interface
    fenetre = Tk()
    
    #=========CONFIGURATION POLICE================================================
    helvetica40 = tkfont.Font(family='Helvetica', size=40, weight='bold')
    helvetica20 = tkfont.Font(family='Helvetica', size=20, weight='bold')
    #button = tk.Button(fenetre, text='Size : 50', font=helvetica)
    #button.grid(row=0,column=0, sticky='EWNS')
    #=========CONFIGURATION SYSTEME DE CARTOGRAPHIE===============================
    #fenetre.grid_columnconfigure(0,weight=1)
    #fenetre.grid_rowconfigure(0,weight=1)
    #==========ENTREE=============================================================
    
    champ_label = Label(fenetre, text="bonjour",font=helvetica40)
    champ_label.pack()
    
    
    
    #==========LANCEMENT DES BATCH================================================
    
    def start_batch_ALL(): 
           subprocess.call([r'C:\Users\MQUERCIA\Desktop\Interface_graphique_python\Matrix.bat'])
    
                
    
    #==============CREATION DES BOUTONS===========================================
    
    
    bouton_analyseSpecif1 = Button(fenetre, text="Analyser", command=start_batch_AD_Ja)
    
    #==================POSITIONNEMENT=============================================
    
    bouton_analyseTout.pack(side =RIGHT, padx =3, pady =5)
    
    
    #====================BARRE DE PROGRESSION=====================================
    
    pb = ttk.Progressbar(fenetre, orient="horizontal", length=200, mode="determinate")
    pb.pack()
    pb.start()
    
    #fenetre.mainloop()
    
    
    #==================BOUTON QUIT===============================================
    bouton_quit = Button(fenetre, text="Quitter", command=fenetre.quit)
    bouton_quit.pack(side =RIGHT,padx =3, pady =5)
    #==================DATE=======================================================
    """
    def affichetemps():
        global L
        while True:
            date = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
            L.config(text=date)
            time.sleep(0.01)    
     
    #root = Tk()
    L = Label(fenetre, text = "")
    L.pack()
    T=threading.Thread(target=affichetemps)
    T.setDaemon(True)
    T.start()
    """
    fenetre.mainloop()

    -
    Edité par MatthieuQuercia 19 juillet 2019 à 13:32:25

    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2019 à 14:42:59

      Je ne vois pas où est appelée ta fonction start_batch_ALL ?

      Mais d'une manière générale pour faire une barre de progression, on calcule le nombre de tâches / d'étapes terminées que l'on divise par le nombre total.

      Donc le faire avec un subprocess ça me parait compliqué, à moins que ton fichier bat envoie les informations nécessaires sur stdout pour que tu puisses les récupérer en python.

      -
      Edité par thelinekioubeur 19 juillet 2019 à 14:44:17

      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2019 à 7:34:32

        bonjour,

        Merci pour vos indications, je vais essayer de mettre ça en oeuvre!

        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2019 à 16:31:29

          Tu peux toujours fragmenté tes operations en plusieurs fichier batch si possible. Disons que tu en a 10 , tu sais qu'a chaque fin de fichier batch tu as +10% de fais ( approx , vu que certain fichier peuvent prendre plus de temp/operations ).
          • Partager sur Facebook
          • Partager sur Twitter

          barre de progression et fichier batch

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown