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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
from tkinter import *
from tkinter import messagebox
class Activite1(Toplevel):
# fenêtre satellite
def __init__(self,couleur="beige"):
Toplevel.__init__(self)
self.geometry("600x400")
self.overrideredirect(0) # => si paramètre 1 fenêtre sans bordure ni bandeau
self.transient(self.master) # => fenêtre 'modale'
self.configure(bg=couleur)
self.title("Activité 1")
self.protocol("WM_DELETE_WINDOW", self.vraimentfermer) # procédure de contrôle de fermeture par clic sur la croix en haut à droite
self.grab_set() # rend actif les evenements souris ou clavier seulement sur cette fenetre
Label(self,text="Ici se déroulerait l'activite 1", bg="lightblue",font="Arial 12",padx=10,pady=10).place(relx = 0.3, rely = 0.3)
self.boutonpop=Button(self,text="Cliquez ici ou Appuyez sur q ou Return pour fermer", command=self.destroy,bg="lightgreen",name="boutonpop")
self.boutonpop.place(width=380,height=30,relx=0.2,rely=0.6)
self.boutonpop.focus_set()
self.boutonpop.bind('<KeyPress>', self.on_key)
def on_key(self,event):
if (event.keysym is "q" or event.keycode is 104 or event.keycode is 36) : # 104 code de return sur pave numerique
self.destroy() # effacement de la fenêtre satellite
def vraimentfermer(self): # envoi ici lors d'un essai de fermeture par la croix de la fenêtre
if messagebox.askokcancel("Quitter", "Voulez-vous vraiment quitter ?"):
self.destroy()
class Activite2(Toplevel):
def __init__(self,couleur="beige"):
Toplevel.__init__(self)
self.geometry("600x400")
self.overrideredirect(0) # => si paramètre 1 fenêtre sans bordure ni bandeau
self.transient(self.master) # => fenêtre 'modale'
self.configure(bg=couleur)
self.title("Activité 2")
self.protocol("WM_DELETE_WINDOW", self.vraimentfermer) # procédure de contrôle de fermeture par clic sur la croix en haut à droite
self.grab_set() # rend actif les evenements souris ou clavier seulement sur cette fenetre
Label(self,text="Ici se déroulerait l'activite 2", bg="lightblue",font="Arial 12",padx=10,pady=10).place(relx = 0.3, rely = 0.3)
self.boutonpop=Button(self,text="Cliquez ici ou Appuyez sur q ou Return pour fermer", command=self.destroy,bg="lightgreen",name="boutonpop")
self.boutonpop.place(width=380,height=30,relx=0.2,rely=0.6)
self.boutonpop.focus_set()
self.boutonpop.bind('<KeyPress>', self.on_key)
def on_key(self,event):
if (event.keysym is "q" or event.keycode is 104 or event.keycode is 36) : # 104 code de return sur pave numerique
print((event.widget) == ".boutonpop")
self.destroy() # effacement de la fenêtre satellite
def vraimentfermer(self): # envoi ici lors d'un essai de fermeture par la croix de la fenêtre
if messagebox.askokcancel("Quitter", "Voulez-vous vraiment quitter ?"):
self.destroy()
################### Page d'accueil #######################
fenetre=Tk()
fenetre.geometry("600x400")
fenetre.title("Compilation de tutoriels")
fenetre.configure(bg = "lightblue")
activite1 = Button(fenetre,text="Lancement de l'activité 1", bg = "lightgreen",padx=7,pady=7,command = Activite1)
activite1.place(relx=0.3,rely=0.1)
activite2 = Button(fenetre,text="Lancement de l'activité 2", bg = "lightgreen",padx=7,pady=7,command = lambda: Activite2("pink"))
activite2.place(relx=0.3,rely=0.3)
fenetre.mainloop() |
Partager