From 514909249fd65a956be6007807d102f01380b3b5 Mon Sep 17 00:00:00 2001 From: VincentLeduc Date: Sun, 27 Aug 2017 21:19:55 +0200 Subject: [PATCH 1/2] Update code bouton startQT --- Views/browseView.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Views/browseView.py b/Views/browseView.py index 68c6e3e..fcb11fc 100644 --- a/Views/browseView.py +++ b/Views/browseView.py @@ -17,6 +17,7 @@ class BrowseView: self.ctrl = BrowseController() self.search_input = "" + self.fermer = False # passe à True quand on clique sur la croix de la fenetre #On lance la fenêtre par rapport à la fenêtre mère BrowseView.root = Toplevel(mother) @@ -56,8 +57,9 @@ class BrowseView: self.pr_list.pack() Button(pr_tab, text="Voir le projet").pack() - Button(pr_tab, text="Démarrer une tâche rapide pour ce projet").pack() - + # Button(pr_tab, text="Démarrer une tâche rapide pour ce projet").pack() + BrowseView.startQT = Button(pr_tab, text="Démarrer une tâche rapide pour ce projet") + BrowseView.startQT.pack() ##Tâches ta_tab = Frame(tabs) From ede2e2c61b6fe96a13c87bdd4694e48a9919627b Mon Sep 17 00:00:00 2001 From: VincentLeduc Date: Sun, 27 Aug 2017 21:20:47 +0200 Subject: [PATCH 2/2] Update barre bouton naviguer --- Menu/barreOutils.py | 70 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/Menu/barreOutils.py b/Menu/barreOutils.py index bbed2d3..f8d49ea 100644 --- a/Menu/barreOutils.py +++ b/Menu/barreOutils.py @@ -1,3 +1,4 @@ + # -*- coding: utf-8 -*- import sys import os @@ -18,11 +19,13 @@ class BarreOutils(): Tous les widgets sont stockés comme attributs de cette fenêtre.""" def __init__(self): - self.mere = "rien" + # céation de la fenetre self.fenetre = Tk() # Cacher la barre de menu self.fenetre.overrideredirect(1) + # la placer par dessus les autre fenetre + self.fenetre.attributes("-topmost",1) # Booleen fermer : devient true quand on appuie sur le bouton deconnexion self.fermer = False # Booleen QTdemarrer : devient true quand on appuie sur le bouton demarrer de la fenetre Quicktask @@ -146,6 +149,8 @@ class BarreOutils(): self.fenetre.bind("", self.Enter) # Object qui contiendra un objet de la classe QuickTask self.q = object + # Object qui contiendra un objet de la classe Browse + self.b = object # Object qui contiendra un objet Toplevel ( une fenetre secondaire ) self.barreReduite = Toplevel(master=self.fenetre) # on instancie la fenetre self.barreReduite.attributes("-topmost",1, "-alpha", 0.01) @@ -160,8 +165,8 @@ class BarreOutils(): # Associer l'evenement entrée de la souris dans la fenetre à la fonction EnterBarreReduite self.barreReduite.bind("", self.EnterBarreReduite) - self.fermetureQT() # instanciation de la fenetre Quicktask et réinstanciation lors de sa fermetur - + self.fermetureQT() # instanciation de la fenetre Quicktask et réinstanciation lors de sa fermeture + self.fermetureBV() # instanciation de la fenetre Browse et réinstanciation lors de sa fermeture # Compteurs servants à determiner quand le curseur sort de la fenetre self.cpt1 = 0 # s'incrémente quand on sort des boutons ou de la fenetre self.cpt2 = 0 # s'incrémente quand on sort des boutons seulement @@ -171,6 +176,10 @@ class BarreOutils(): """L'utilisateur veut fermer le programme et se deconnecter""" self.callback() if self.fermer == True: + self.b.fermer = True + self.b.root.destroy() # on ferme la fenetre Browse + self.q.fermer = True + self.q.fenetre.destroy() # on ferme la fenetre self.fenetre.destroy() ### Demande de confirmation après avoir appuyer sur le bouton Deconnexion def callback(self): @@ -189,6 +198,8 @@ class BarreOutils(): self.q.fenetre.state("normal") # la fenetre Quicktask passe à l'état normal self.bouton_tache_rapide.configure(bg="grey") # le bouton tache rapide passe à la couleur gris foncé self.bouton_tache_rapide.configure(relief = "sunken") # et son aspect devient appuyé pour signifier à l'utilisateur que la fenetre tache rapide est ouverte + elif self.q.fenetre.state() == "iconic": # sinon si fenetre est a l'etat iconic + self.q.fenetre.state("normal") # on rend visible la fenetre QuickTask else: # sinon self.q.fenetre.state("withdraw") # l'état de Quicktask devient withdraw self.bouton_tache_rapide.configure(bg="SystemButtonFace") # le bouton tache rapide redevient de couleur et d'aspect normaux @@ -204,9 +215,19 @@ class BarreOutils(): # TODO : ouvrir la fenetre des rapports ### cliquer sur le bouton naviguer ouvre la fenetre de navigation def naviguer(self): - """L'utilisateur veut ouvrir la fenetre des rapports""" - self.browse = BV(mother=self.fenetre) - + """L'utilisateur veut ouvrir la fenetre des rapports""" + if self.b.root.state() == "withdrawn": # si la fenetre NAviguer est à l'état withdrawn ( cachée, invisible ) + self.b.root.state("normal") # la fenetre Naviguer passe à l'état normal + self.bouton_naviguer.configure(bg="grey") # le bouton Naviguer passe à la couleur gris foncé + self.bouton_naviguer.configure(relief = "sunken") # et son aspect devient appuyé pour signifier à l'utilisateur que la fenetre Naviguer est ouverte + elif self.b.root.state() == "iconic": # sinon si fenetre est a l'etat iconic + self.b.root.state("normal") # on rend visible la fenetre Naviguer + else: # sinon + self.b.root.state("withdraw") # l'état de Naviguer devient withdraw + self.bouton_naviguer.configure(bg="SystemButtonFace") # le bouton naviguer redevient de couleur et d'aspect normaux + self.bouton_naviguer.configure(relief = "raised") # et on associe les widget de la fenetre barreOutils à la fonction Leave qui détermine quand le curseur de la souris sort de la fenetre + self.fenetre.bind("", self.Leave) + self.q.fenetre.state("iconic") ### convertir la chaine du paramentre de geometry( en liste de parametre entier def geoliste(self, g): r=[i for i in range(0,len(g)) if not g[i].isdigit()] @@ -227,21 +248,32 @@ class BarreOutils(): base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) + ### Si l'état de la fenetre n'est pas iconic, on retire les bords et le cadre windows def iconification(self, event): if not self.fenetre.state() == 'iconic': self.fenetre.overrideredirect(1) + ### Intercepte la fermeture de la fenetre Quicktask / lorsqu'on clique sur la croix de la fenetre Quicktask : def intercepteFermetureQT(self): self.q.fermer = True self.q.fenetre.destroy() # on ferme la fenetre - #print("quicktask.fermer= ",self.q.fermer) self.bouton_tache_rapide.configure(bg="SystemButtonFace") # le bouton tache rapide redevient de couleur normal self.bouton_tache_rapide.configure(relief = "raised") # et de relief normal - self.fermetureQT() # on appel la fonction fermetureQT + self.fermetureQT() # on appel la fonction fermetureQT + + def intercepteFermetureBV(self): + self.b.fermer = True + self.b.root.destroy() # on ferme la fenetre + self.bouton_naviguer.configure(bg="SystemButtonFace") # le bouton tache rapide redevient de couleur normal + self.bouton_naviguer.configure(relief = "raised") # et de relief normal + self.q.fenetre.state("iconic") + self.fermetureBV() # on appel la fonction fermetureBV + ### Lors de la fermture de la fenetre QT : def fermetureQT(self): self.q = QT(mother=self.fenetre) # On renouvelle l'objet de la classe Quicktask qui ouvre une fenetre Quicktask + self.q.fenetre.attributes("-topmost",1) # On la fait passer au dessus des autres self.q.fenetre.withdraw() # On cache la fentre self.q.fenetre.bind("", self.reduce) # On associe le fait de changer l'état de la fentre ( iconic) à la fonciton reduce self.q.fenetre.protocol("WM_DELETE_WINDOW", self.intercepteFermetureQT) # On associe intercepte la fermeture de la fenetre Quicktask @@ -249,7 +281,15 @@ class BarreOutils(): self.q.QTdemarrer = False self.q.cancel.bind('', self.QT_cancel) # On associe le fait de presser le bouton annuler à la fonction QT_cancel self.fenetre.bind("", self.Leave) # On associe le fait de sortir avec le curseur de la souris de la fenetre à la fonction Leave - + def fermetureBV(self): + self.b = BV(mother=self.fenetre) + self.b.root.attributes("-topmost",1) # On la fait passer au dessus des autres + self.b.root.attributes("-topmost",0) + self.b.root.withdraw() # On cache la fentre + self.b.root.bind("", self.reduce) # On associe le fait de changer l'état de la fentre ( iconic) à la fonciton reduce + self.b.root.protocol("WM_DELETE_WINDOW", self.intercepteFermetureBV) # On associe intercepte la fermeture de la fenetre Browse + self.b.startQT.bind('', self.BV_startQT) + self.fenetre.bind("", self.Leave) # On associe le fait de sortir avec le curseur de la souris de la fenetre à la fonction Leave ### Lors de l'appuie sur le bouton demarrer de la fenetre Quicktask def QT_start(self,args): if self.q.QTdemarrer == False: @@ -268,6 +308,8 @@ class BarreOutils(): print(" leave") if self.q.fenetre.state() == "normal": self.cpt1 -= 1 + if self.b.root.state() == "normal": + self.cpt1 -= 1 self.cpt1 += 1 print("cpt1 = ", self.cpt1) print("cpt2 = ", self.cpt2) @@ -287,7 +329,15 @@ class BarreOutils(): self.cpt1 = 0 self.cpt2 = 0 self.boolBarreReduite = True - + ### lorsqu'on clique sur le bouton "Demarrer une taches rapide pour ce projet" dans la fenetre naviguer + def BV_startQT(self,args): + if self.bouton_tache_rapide["bg"] == "green": + showinfo('Tache rapide', 'Une tâche rapide est déjà en cours') + #elif self.q.fenetre.state() == "normal": + # showinfo('Tache rapide', 'La fenetre des tâches rapides est déjà ouverte') + else: + self.q.fenetre.state("normal") + ### lorsque le curseur de la souris rentre dans la fenetre def Enter(self, args): self.fenetre.overrideredirect(1)