Ajout de la fenetre de navigation à la barre d'outil

This commit is contained in:
Matt Marcha 2017-08-24 17:02:19 +02:00
parent 98ccb095d3
commit 969d730233
2 changed files with 27 additions and 34 deletions

View file

@ -9,13 +9,14 @@ DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT) DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
sys.path.append(DOSSIER_PARENT) sys.path.append(DOSSIER_PARENT)
from Views.quickTask import QuickTask as QT from Views.quickTask import QuickTask as QT
from Views.browseView import BrowseView as BV
class BarreOutils(): class BarreOutils():
"""Notre fenêtre principale. """Notre fenêtre principale.
Tous les widgets sont stockés comme attributs de cette fenêtre.""" Tous les widgets sont stockés comme attributs de cette fenêtre."""
def __init__(self): def __init__(self):
self.mere = "rien" self.mere = "rien"
# céation de la fenetre # céation de la fenetre
@ -28,7 +29,7 @@ class BarreOutils():
self.QTdemarrer = False self.QTdemarrer = False
# Booleen barreReduite : devient true quand la barre se reduit # Booleen barreReduite : devient true quand la barre se reduit
self.boolBarreReduite = False self.boolBarreReduite = False
# Dimension et position fenetre # Dimension et position fenetre
self.hauteur = self.fenetre.winfo_screenheight()/1.4 # 70% de la page en hauteur self.hauteur = self.fenetre.winfo_screenheight()/1.4 # 70% de la page en hauteur
self.largeur = self.fenetre.winfo_screenwidth()/13 # 10% de la page en largeur self.largeur = self.fenetre.winfo_screenwidth()/13 # 10% de la page en largeur
@ -75,7 +76,7 @@ class BarreOutils():
image = Image.open(fleche) image = Image.open(fleche)
except Exception: except Exception:
image = Image.open(fleche2) image = Image.open(fleche2)
photo = ImageTk.PhotoImage(image) photo = ImageTk.PhotoImage(image)
self.bouton_tache_rapide = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.open_taches_rapides) self.bouton_tache_rapide = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.open_taches_rapides)
self.bouton_tache_rapide.grid(row=3,column=1, padx = self.largeur * 0.02) self.bouton_tache_rapide.grid(row=3,column=1, padx = self.largeur * 0.02)
@ -113,7 +114,7 @@ class BarreOutils():
image = Image.open(loupe) image = Image.open(loupe)
except Exception: except Exception:
image = Image.open(loupe2) image = Image.open(loupe2)
photo = ImageTk.PhotoImage(image) photo = ImageTk.PhotoImage(image)
self.bouton_naviguer = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.naviguer) self.bouton_naviguer = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.naviguer)
self.bouton_naviguer.grid(row=6,column=1) self.bouton_naviguer.grid(row=6,column=1)
@ -126,7 +127,7 @@ class BarreOutils():
except Exception: except Exception:
image = Image.open(deco2) image = Image.open(deco2)
photo = ImageTk.PhotoImage(image) photo = ImageTk.PhotoImage(image)
self.bouton_deconnexion = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.deconnexion) self.bouton_deconnexion = Button(self.fenetre, image=photo,width=self.largeurBoutons,height=self.hauteurBoutons, command=self.deconnexion)
self.bouton_deconnexion.grid(row=7,column=1) self.bouton_deconnexion.grid(row=7,column=1)
@ -144,7 +145,7 @@ class BarreOutils():
self.fenetre.bind("<Leave>", self.Leave) self.fenetre.bind("<Leave>", self.Leave)
self.fenetre.bind("<Enter>", self.Enter) self.fenetre.bind("<Enter>", self.Enter)
# Object qui contiendra un objet de la classe QuickTask # Object qui contiendra un objet de la classe QuickTask
self.q = object self.q = object
# Object qui contiendra un objet Toplevel ( une fenetre secondaire ) # Object qui contiendra un objet Toplevel ( une fenetre secondaire )
self.barreReduite = Toplevel(master=self.fenetre) # on instancie la fenetre self.barreReduite = Toplevel(master=self.fenetre) # on instancie la fenetre
self.barreReduite.attributes("-topmost",1, "-alpha", 0.01) self.barreReduite.attributes("-topmost",1, "-alpha", 0.01)
@ -158,20 +159,20 @@ class BarreOutils():
self.barreReduite.attributes("-topmost",1, "-alpha", 0.01) # l'attribut topmost fait passer la fenetre au premier plan, l'attribut -alpha la rends transparente self.barreReduite.attributes("-topmost",1, "-alpha", 0.01) # l'attribut topmost fait passer la fenetre au premier plan, l'attribut -alpha la rends transparente
# Associer l'evenement entrée de la souris dans la fenetre à la fonction EnterBarreReduite # Associer l'evenement entrée de la souris dans la fenetre à la fonction EnterBarreReduite
self.barreReduite.bind("<Enter>", self.EnterBarreReduite) self.barreReduite.bind("<Enter>", 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 fermetur
# Compteurs servants à determiner quand le curseur sort de la fenetre # 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.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 self.cpt2 = 0 # s'incrémente quand on sort des boutons seulement
### Fonctions liées aux Boutons ### ### Fonctions liées aux Boutons ###
def deconnexion(self): def deconnexion(self):
"""L'utilisateur veut fermer le programme et se deconnecter""" """L'utilisateur veut fermer le programme et se deconnecter"""
self.callback() self.callback()
if self.fermer == True: if self.fermer == True:
self.fenetre.destroy() self.fenetre.destroy()
### Demande de confirmation après avoir appuyer sur le bouton Deconnexion ### Demande de confirmation après avoir appuyer sur le bouton Deconnexion
def callback(self): def callback(self):
self.fermer = askyesno('Deconnexion', 'Êtes-vous sûr de vouloir vous deconnecter ?') self.fermer = askyesno('Deconnexion', 'Êtes-vous sûr de vouloir vous deconnecter ?')
### Cliquer sur le bouton taches rapides déclenche cette fonction qui ouvre la fenetre QuickTask ### Cliquer sur le bouton taches rapides déclenche cette fonction qui ouvre la fenetre QuickTask
@ -186,7 +187,7 @@ class BarreOutils():
else: # sinon ( si le bouton tache rapide n'est pas de couleur verte ) else: # sinon ( si le bouton tache rapide n'est pas de couleur verte )
if self.q.fenetre.state() == "withdrawn": # si la fenetre QuickTask est à l'état withdrawn ( cachée, invisible ) if self.q.fenetre.state() == "withdrawn": # si la fenetre QuickTask est à l'état withdrawn ( cachée, invisible )
self.q.fenetre.state("normal") # la fenetre Quicktask passe à l'état normal 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(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 self.bouton_tache_rapide.configure(relief = "sunken") # et son aspect devient appuyé pour signifier à l'utilisateur que la fenetre tache rapide est ouverte
else: # sinon else: # sinon
self.q.fenetre.state("withdraw") # l'état de Quicktask devient withdraw self.q.fenetre.state("withdraw") # l'état de Quicktask devient withdraw
@ -204,16 +205,14 @@ class BarreOutils():
### cliquer sur le bouton naviguer ouvre la fenetre de navigation ### cliquer sur le bouton naviguer ouvre la fenetre de navigation
def naviguer(self): def naviguer(self):
"""L'utilisateur veut ouvrir la fenetre des rapports""" """L'utilisateur veut ouvrir la fenetre des rapports"""
# TODO : ouvrir la fenetre de navigation self.browse = BV(mother=self.fenetre)
self.fenetre.overrideredirect(0)
self.fenetre.state('iconic')
### convertir la chaine du paramentre de geometry( en liste de parametre entier ### convertir la chaine du paramentre de geometry( en liste de parametre entier
def geoliste(self, g): def geoliste(self, g):
r=[i for i in range(0,len(g)) if not g[i].isdigit()] r=[i for i in range(0,len(g)) if not g[i].isdigit()]
return [int(g[0:r[0]]),int(g[r[0]+1:r[1]]),int(g[r[1]+1:r[2]]),int(g[r[2]+1:])] return [int(g[0:r[0]]),int(g[r[0]+1:r[1]]),int(g[r[1]+1:r[2]]),int(g[r[2]+1:])]
### Intercepter la fermeture de la fenetre barreOutil lorsqu'on la ferme autrement qu'avec le bouton quitter ### Intercepter la fermeture de la fenetre barreOutil lorsqu'on la ferme autrement qu'avec le bouton quitter
def intercepteFermetureBarre(self): def intercepteFermetureBarre(self):
self.fermer = True self.fermer = True
self.fenetre.destroy() self.fenetre.destroy()
@ -244,14 +243,14 @@ class BarreOutils():
def fermetureQT(self): def fermetureQT(self):
self.q = QT(mother=self.fenetre) # On renouvelle l'objet de la classe Quicktask qui ouvre une fenetre Quicktask self.q = QT(mother=self.fenetre) # On renouvelle l'objet de la classe Quicktask qui ouvre une fenetre Quicktask
self.q.fenetre.withdraw() # On cache la fentre self.q.fenetre.withdraw() # On cache la fentre
self.q.fenetre.bind("<Unmap>", self.reduce) # On associe le fait de changer l'état de la fentre ( iconic) à la fonciton reduce self.q.fenetre.bind("<Unmap>", 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 self.q.fenetre.protocol("WM_DELETE_WINDOW", self.intercepteFermetureQT) # On associe intercepte la fermeture de la fenetre Quicktask
self.q.start_stop.bind('<ButtonPress>', self.QT_start) # On associe le fait de presser le bouton démarrer à la fonction QT_start self.q.start_stop.bind('<ButtonPress>', self.QT_start) # On associe le fait de presser le bouton démarrer à la fonction QT_start
self.q.QTdemarrer = False self.q.QTdemarrer = False
self.q.cancel.bind('<ButtonPress>', self.QT_cancel) # On associe le fait de presser le bouton annuler à la fonction QT_cancel self.q.cancel.bind('<ButtonPress>', self.QT_cancel) # On associe le fait de presser le bouton annuler à la fonction QT_cancel
self.fenetre.bind("<Leave>", self.Leave) # On associe le fait de sortir avec le curseur de la souris de la fenetre à la fonction Leave self.fenetre.bind("<Leave>", 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 ### Lors de l'appuie sur le bouton demarrer de la fenetre Quicktask
def QT_start(self,args): def QT_start(self,args):
if self.q.QTdemarrer == False: if self.q.QTdemarrer == False:
self.bouton_tache_rapide.configure(bg="green") self.bouton_tache_rapide.configure(bg="green")
@ -272,7 +271,7 @@ class BarreOutils():
self.cpt1 += 1 self.cpt1 += 1
print("cpt1 = ", self.cpt1) print("cpt1 = ", self.cpt1)
print("cpt2 = ", self.cpt2) print("cpt2 = ", self.cpt2)
if self.cpt1 > self.cpt2: if self.cpt1 > self.cpt2:
i = 1 i = 1
while i >= 0.02: # Disparition de la barre en dégradé while i >= 0.02: # Disparition de la barre en dégradé
@ -281,14 +280,14 @@ class BarreOutils():
time.sleep(0.005) time.sleep(0.005)
self.fenetre.attributes("-alpha", 0) self.fenetre.attributes("-alpha", 0)
self.fenetre.overrideredirect(0) self.fenetre.overrideredirect(0)
self.fenetre.state("iconic") self.fenetre.state("iconic")
self.fenetre.attributes("-alpha", 1) self.fenetre.attributes("-alpha", 1)
if self.boolBarreReduite == False: if self.boolBarreReduite == False:
self.barreReduite.state("normal") self.barreReduite.state("normal")
self.cpt1 = 0 self.cpt1 = 0
self.cpt2 = 0 self.cpt2 = 0
self.boolBarreReduite = True self.boolBarreReduite = True
### lorsque le curseur de la souris rentre dans la fenetre ### lorsque le curseur de la souris rentre dans la fenetre
def Enter(self, args): def Enter(self, args):
self.fenetre.overrideredirect(1) self.fenetre.overrideredirect(1)
@ -312,11 +311,8 @@ class BarreOutils():
self.fenetre.state("normal") self.fenetre.state("normal")
self.barreReduite.withdraw() self.barreReduite.withdraw()
self.boolBarreReduite = False self.boolBarreReduite = False
#b = BarreOutils() #b = BarreOutils()
#b.fenetre.mainloop() #b.fenetre.mainloop()

View file

@ -13,13 +13,13 @@ from Users.Model import User
class BrowseView: class BrowseView:
def __init__(self): def __init__(self, mother):
self.ctrl = BrowseController() self.ctrl = BrowseController()
self.search_input = "" self.search_input = ""
#On lance la fenêtre par rapport à la fenêtre mère #On lance la fenêtre par rapport à la fenêtre mère
BrowseView.root = Tk() BrowseView.root = Toplevel(mother)
BrowseView.root.title("Naviguer") BrowseView.root.title("Naviguer")
#Initialisation des variables #Initialisation des variables
@ -81,6 +81,3 @@ class BrowseView:
#test #test
test = BrowseView()
test.root.mainloop()