Update barre bouton naviguer
This commit is contained in:
parent
514909249f
commit
ede2e2c61b
|
@ -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("<Enter>", 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("<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 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
|
||||
|
@ -205,8 +216,18 @@ class BarreOutils():
|
|||
### 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)
|
||||
|
||||
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("<Leave>", 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("<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
|
||||
|
@ -249,7 +281,15 @@ class BarreOutils():
|
|||
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.fenetre.bind("<Leave>", 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("<Unmap>", 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('<ButtonPress>', self.BV_startQT)
|
||||
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
|
||||
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,6 +329,14 @@ 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):
|
||||
|
|
Loading…
Reference in a new issue