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
| #!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
#
import sys
running_python3 = sys.version_info[0] > 2
if running_python3:
import tkinter
else:
import Tkinter as tkinter
class Demo(tkinter.Frame):
def __init__(self, master):
tkinter.Frame.__init__(self, master)
self.master = master
## Lecture diode ref
################################################################################
self.saisies = {}
self.compteur_faisceaux = 4
###########################################
tkinter.Label(self, text="Lecture diode ref",
anchor="w").grid(column=0, row=19, pady=3) #emplacement du label
tkinter.Label(self, text="Lecture diode Coin",
anchor="w").grid(column=0, row=21, pady=3) #emplacement du label
validatecmd = (self.register(self.OnValidate), '%S', '%W')
for i in range(0, self.compteur_faisceaux):# pour créer autant de champ que de faisceaux
e1 = tkinter.Entry(self, validate="key", vcmd=validatecmd)
e1.grid(column=1+i, row=19, sticky='EW', padx=4) #emplacement du champ texte
e2 = tkinter.Entry(self, validate="key", vcmd=validatecmd) #création d'un champ texte
e2.grid(column=1+i, row=21, sticky='EW', padx=4) #emplacement du champ texte
e1.bind("<Return>", self.NextEntry)
e1.bind("<KP_Enter>", self.NextEntry)
e2.bind("<Return>", self.OnPressEnter)
e2.bind("<KP_Enter>", self.OnPressEnter)
self.saisies[e2] = e1
self.saisies[e1] = e2
def OnValidate(self, S, W):
currentw = self.nametowidget(W)
if S.isdigit() or (S == '.' and '.' not in currentw.get()):
return True
return False
def OnPressEnter(self, event):
currentw = self.nametowidget(event.widget)
text2 = currentw.get()
text1 = self.saisies[currentw].get()
if float(text2) > float(text1):
tkinter.Label(self, bg="green",
text=' '*4).grid(column=2+self.compteur_faisceaux,
row=27)
else:
tkinter.Label(self, bg="red",
text=' '*4).grid(column=2+self.compteur_faisceaux,
row=27)
def NextEntry(self, event):
nextwidget = self.saisies[self.nametowidget(event.widget)]
nextwidget.focus_set()
nextwidget.select_range(0, tkinter.END)
################################################################################
if __name__ == "__main__":
root = tkinter.Tk()
Demo(root).pack()
root.mainloop() |
Partager