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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| #!/usr/bin/python2.7
#-*- coding: utf-8 -*-
""" on appelle le module tkinter de Python 3.5 pour utiliser les éléments de ce module. On importe Tkinter depuis la bibliothèque """
from tkinter import *
from tkinter import messagebox
def creation_fenetre():
""" on détermine la variable fenetre comme une variable globale pouvanat être
prise en compte partout ailleurs dans le programme """
global fenetre
""" on crée une instanciation de la fenêtre en prenant une partie de l'objet
Tk() """
fenetre = Tk()
""" on détermine la resolution de l'ecran de l'ordinateur sur lequel on est,
après avoir rendu la variable 'globale' pour qu'elle puisse être vue par
les autres parties du programmes lorsqu'elle est appelée dans le fichier
extérieur"""
global w
w = fenetre.winfo_screenwidth()
global h
h = fenetre.winfo_screenheight()
""" on determine le % de l'ecran utilisé par la fenetre """
global pourcent
pourcent = 0.80
""" on colore le fond de la fenetre en orange"""
fenetre['bg']='orange'
""" on affecte les dimensions de l'ecran pour ouvrir la fenetre à x%(variable pourcent) du plein ecran """
fenetre.geometry("%dx%d+0+0" % (w*pourcent, h*pourcent))
""" on donne un titre à la fenetre """
fenetre.title("Jus d'orange") # titre de la fenetre
""" autorisation du déplacement de la fenetre par l'utilisateur """
fenetre.positionfrom("user") # placement manuel de la fenetre possible avec la souris
""" autorisation du redimensionnement de la fenetre par l'utilisateur """
fenetre.sizefrom("user") # dimensionnement manuel de la fenetre possible
""" on determine la possibilité de détruire la fenetre """
fenetre.protocol("WM_DELETE_WINDOW", fenetre.destroy) # evenement WM
def ajout_bouton_quitter():
""" on ajoute un bouton quitter """
Bouton = Button(fenetre,text="Fermer la fenetre",fg='navy',command=fenetre.destroy)
""" on permet de voir le bouton """
Bouton.pack()
""" on place le Button en bas à droite de la fenêtre par la méthode place() """
Bouton.place(x=w*pourcent-140, y=h*pourcent-30)
def ajout_champ_label001():
global texte001
texte001 = "Bonjour !"
# On crée un label (ligne de texte) souhaitant la bienvenue
# Note : le premier paramètre passé au constructeur de Label est notre
# interface racine
champ_label001 = Label(fenetre, text= texte001) # text est l'option représentant le texte affiché par le label
# On affiche le label dans la fenêtre par la méthode pack
# les boutons, champs de texte, cases à cocher, barres de progression etc... sont appelés widgets
champ_label001.pack()
""" on place le champ_label en haut au centre de la fenêtre par la méthode place() """
champ_label001.place(x=(w*pourcent/2), y=h*pourcent-(h-260))
def ajout_champ_label002():
global texte002
texte002 = "Avant de commencer, je vais te raconter une longue histoire ..................................................................................Re-Bonjour !"
# On crée un label (ligne de texte) contenant le texte
# Note : le premier paramètre passé au constructeur de Label est notre
# interface racine
champ_label002 = Label(fenetre, text= texte002) # text est l'option représentant le texte affiché par le label
# On affiche le label dans la fenêtre par la méthode pack
# les boutons, champs de texte, cases à cocher, barres de progression etc... sont appelés widgets
champ_label002.pack()
""" on place le champ_label en haut au centre de la fenêtre par la méthode place() """
champ_label002.place(x=(w*pourcent/100), y=h*pourcent-(h-280))
def ajout_champ_label003():
global texte003
texte003 = "et voila une troisième histoire ..................................................................................Re-Bonjour !"
# On crée un label (ligne de texte) contenant le texte
# Note : le premier paramètre passé au constructeur de Label est notre
# interface racine
# ensuite vient le texte qui sera écrit dans la zone etiquette
# puis l'écart par rapport aux bords de l'etiquette ( padx: Marge horizontale entre les bords du widget et son contenu. pady: Marge verticale entre les bords du widget et son contenu
# foreground:couleur de l'écriture
# background: couleur du fond
# borderwidth: epaisseur de la bordure
# relief = relief de la bordure : flat (plat) - raised(ressort vers extérieur) - sunken (enfoncé) - groove (triat en creux) - ridge (trait en relief)
# height Hauteur de létiquette en nombre de lignes (non en pixels). Si cette option nest pas précisée, létiquette sajuste à son contenu.
# width Largeur de létiquette exprimée en nombre de caractères (non en pixels). Si cette option nest pas précisée, létiquette sajuste à son contenu.
champ_label003 = Label(fenetre, text= texte003, padx="0", pady="4", foreground="#892222", background="#FFAAAA", borderwidth= 5, relief= "ridge", height= 10, width= 80) # text est l'option représentant le texte affiché par le label
# On affiche le label dans la fenêtre par la méthode pack
# les boutons, champs de texte, cases à cocher, barres de progression etc... sont appelés widgets
champ_label003.pack()
""" on place le champ_label en haut au centre de la fenêtre par la méthode place() """
champ_label003.place(x=(w*pourcent/100), y=h*pourcent-(h-480))
# fin de la fonction creation_fenetre()
def boucle_fenetre():
""" on crée la boucle infinie qui teste si une touche ou un clic de souris etc... a lieu pour déclencher un évènement prédéfini auparavant """
fenetre.mainloop()
# création menu pour fenêtre
# def barre_de_menus():
def alert1():
messagebox.showinfo("menu1", "c'est le résultat de menu1 !")
def alert2():
messagebox.showinfo("menu2", "c'est le résultat de menu2 !")
def alert3():
messagebox.showinfo("menu3", "c'est le résultat de menu3 !")
def alert4():
messagebox.showinfo("menu4", "c'est le résultat de menu4 !")
def alert5():
messagebox.showinfo("menu5", "c'est le résultat de menu5 !")
def alert6():
messagebox.showinfo("faire quleque avec à propos", "c'est le résultat de l'à propos !")
# création menu pour fenêtre
def barre_de_menus():
menubar = Menu(fenetre, background="green")
menu1 = Menu(menubar, tearoff=0, background="green")
menu1.add_command(label="sous-menu1", command=alert1)
menu1.add_command(label="sous-menu2", command=alert2)
menu1.add_separator()
menu1.add_command(label="Quitter", command=fenetre.destroy)
menubar.add_cascade(label="premier menu", menu=menu1)
menu2 = Menu(menubar, tearoff=0, background="green")
menu2.add_command(label="sous-menu3", command=alert3)
menu2.add_command(label="sous-menu4", command=alert4)
menu2.add_command(label="sous-menu5", command=alert5)
menubar.add_cascade(label="deuxième menu", menu=menu2)
menu3 = Menu(menubar, tearoff=0, background="green")
menu3.add_command(label="A propos", command=alert6)
menubar.add_cascade(label="Aide", menu=menu3)
fenetre.config(menu=menubar) |
Partager