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
|
# Suivant que l'on exécute ce script sous Python 3 ou Python 2,
# on utilisera le module Tkinter correspondant :
try:
from tkinter import * # module Tkinter pour Python 3
except:
from Tkinter import * # module Tkinter pour Python 2
class FenValid(Toplevel):
# Execute la commande en paramètre avec comme argument un text de valeur : BP1 ou BP2 ou none selon le bouton appuyé
def sortie(self, event =None):
self.destroy ()
# Exécuter la commande indiquée, avec l'argument-item encodé tel quel :
self.command(self.item)
def validationBP (self):
self.item='BP1'
self.sortie()
def annulationBP (self):
self.item='BP2'
self.sortie()
"Fenêtre satellite contenant deux boutons"
def __init__(self,texte,labelBP1,labelBP2, command ='', **Arguments):
Toplevel.__init__(self, **Arguments)
self.command =command # fonction à invoquer après clic ou <enter>
self.item='none'
self.boutonBP1= Button(self,text=labelBP1,command=self.validationBP)
self.boutonBP1.grid(row=2,column=1,padx=10,pady=10)
self.boutonBP2= Button(self,text=labelBP2,command=self.annulationBP)
self.boutonBP2.grid(row=2,column=2,padx=10,pady=10)
chaine = Label(self)
chaine.grid(row=1,column=1,padx=10,pady=10,columnspan=2)
chaine.configure (text = texte)
def shoot(event):
print ('-- Souris x='+str(event.x)+' y='+str(event.y))
# ------------------------ MAIN --------------------------------
def changeCoul(col):
fen.configure(background = col)
def changeLabel():
lab.configure(text = combo.get())
def fermeture(rep):
if rep=='BP1':
fen.destroy()
def rien(rep):
Print('rien')
def validationFermeture():
fenValidFerm= FenValid (texte='Le programme est-t-il terminé ? ',labelBP1='OUI',labelBP2='NON',command = fermeture)
fen = Tk()
fen.overrideredirect(1)
largeur, hauteur = (500,250)
canevas = Canvas(fen,bg='dark grey',height=hauteur,width=largeur)
canevas.grid(row=2,column=1,padx=10,pady=10,rowspan=6,columnspan=9)
canevas.create_polygon (0,0,largeur,0,largeur,hauteur,0,hauteur,fill='dark grey',outline='White') #pourtour
canevas.bind("<Button-1>", shoot)
boutonFermeture= Button(text='Fermeture',command=validationFermeture)
boutonFermeture.grid(row=9,column=1,padx=10,pady=10,columnspan=3)
fen.mainloop() |
Partager