Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from sqlite3 import *
- import datetime
- from Tkinter import *
- import ttk
- import tkMessageBox
- import Queue
- class TestFiles:
- def __init__(self,principale = None):
- self.DefinirVariables()
- f = self.ConstruireWidgets(principale)
- self.PlacerWidgets(f)
- self.AfficherStatut()
- self.DerniereFile = 'fifo'
- def DefinirVariables(self):
- self.TypeDeFile = ''
- self.DerniereFile = ''
- self.StatutPlein = StringVar()
- self.StatutVide = StringVar()
- self.Element = StringVar()
- self.Sortie = StringVar()
- # Definit les files
- self.fifo = Queue.Queue(10)
- self.lifo = Queue.LifoQueue(10)
- self.pq = Queue.PriorityQueue(10)
- self.obj = self.fifo
- def ConstruireWidgets(self,principale):
- # Definit nos widgets
- fenetre = Frame(principale)
- self.f1 = Frame(fenetre,
- relief = SUNKEN,
- borderwidth=2,
- width = 300,
- padx = 3,
- pady = 3
- )
- self.btnFifo = Button(self.f1,
- text = "FIFO"
- )
- #
- self.btnFifo.bind('<Button-1>',
- lambda e: self.btnMain(1)
- )
- self.btnLifo = Button(self.f1,
- text = "LIFO"
- )
- self.btnLifo.bind('<ButtonRelease-1>',
- lambda e: self.btnMain(2)
- )
- self.btnPriority = Button(self.f1,
- text = "PRIORITY"
- )
- self.btnPriority.bind('<ButtonRelease-1>',
- lambda e: self.btnMain(3)
- )
- self.f2 = Frame(fenetre,
- relief = SUNKEN,
- borderwidth=2,
- width = 300,
- padx = 3,
- pady = 3
- )
- self.txtAdd = Entry(self.f2,
- width=5,
- textvar=self.Element
- )
- self.txtAdd.bind('<Return>',self.AjouterALaFile)
- self.btnAdd = Button(self.f2,
- text='Ajout dans la file',
- padx = 3,
- pady = 3
- )
- self.btnAdd.bind('<ButtonRelease-1>',self.AjouterALaFile)
- self.btnGet = Button(self.f2,
- text='Recupere element suivant',
- padx = 3,
- pady = 3
- )
- self.btnGet.bind('<ButtonRelease-1>',self.RecupererDansFile)
- self.lblEmpty = Label(self.f2,
- textvariable=self.StatutVide,
- relief=FLAT
- )
- self.lblFull = Label(self.f2,
- textvariable=self.StatutPlein,
- relief=FLAT
- )
- self.lblData = Label(self.f2,
- textvariable=self.Sortie,
- relief = FLAT,
- font=("Helvetica", 16),
- padx = 5
- )
- return fenetre
- def PlacerWidgets(self, principale):
- fenetre = principale
- # Place les widgets
- fenetre.grid(column = 0, row = 0)
- l = Label(fenetre,text='',relief=FLAT,width = 15, anchor = 'e').grid(column = 0, row = 0)
- l = Label(fenetre,text='',relief=FLAT,width = 15, anchor = 'e').grid(column = 1, row = 0)
- l = Label(fenetre,text='',relief=FLAT,width = 15, anchor = 'e').grid(column = 2, row = 0)
- l = Label(fenetre,text='',relief=FLAT,width = 15, anchor = 'e').grid(column = 3, row = 0)
- l = Label(fenetre,text='',relief=FLAT,width = 15, anchor = 'e').grid(column = 4, row = 0)
- self.f1.grid(column = 0,row = 1,sticky='nsew',columnspan=5,padx = 5,pady = 5)
- l = Label(self.f1,text='',width = 25,anchor = 'e').grid(column = 0, row = 0)
- self.btnFifo.grid(column = 1,row = 0,padx = 4)
- self.btnLifo.grid(column = 2,row = 0,padx = 4)
- self.btnPriority.grid(column = 3, row = 0, padx = 4)
- self.f2.grid(column = 0,row = 2,sticky='nsew',columnspan=5,padx = 5, pady = 5)
- l = Label(self.f2,text='',width = 15,anchor = 'e').grid(column = 0, row = 0)
- self.txtAdd.grid(column=1,row=0)
- self.btnAdd.grid(column=2,row=0)
- self.btnGet.grid(column=3,row=0)
- self.lblEmpty.grid(column=2,row=1)
- self.lblFull.grid(column=3,row = 1)
- self.lblData.grid(column = 4,row = 0)
- def Quitter(self):
- sys.exit()
- def btnMain(self,p1):
- if p1 == 1:
- self.TypeDeFile = 'FIFO'
- self.obj = self.fifo
- root.title('Tests Files - FIFO')
- #self.btnFifo.config(relief='sunken')
- elif p1 == 2:
- self.TypeDeFile = 'LIFO'
- self.obj = self.lifo
- root.title('Tests Files - LIFO')
- elif p1 == 3:
- self.TypeDeFile = 'PRIORITY'
- self.obj = self.pq
- root.title('Tests Files - Priorite')
- elif p1 == 4:
- self.TypeDeFile = 'RING'
- print self.TypeDeFile
- self.AfficherStatut()
- def AfficherStatut(self):
- # verifie si vide
- if self.obj.empty() == True:
- self.StatutVide.set('Vide')
- else:
- self.StatutVide.set('')
- # verifie si plein
- if self.obj.full() == True:
- self.StatutPlein.set('Plein')
- else:
- self.StatutPlein.set('')
- def AjouterALaFile(self,p1):
- temp = self.Element.get()
- if self.TypeDeFile == 'PRIORITY':
- commapos = temp.find(',')
- if commapos == -1:
- print "ERREUR"
- tkMessageBox.showerror('Demo File',
- 'Un element Priority doit etre au format\r(priorite,valeur)')
- else:
- self.obj.put(self.Element.get())
- elif not self.obj.full():
- self.obj.put(self.Element.get())
- self.Element.set('')
- self.AfficherStatut()
- def RecupererDansFile(self,p1):
- self.Sortie.set('')
- if not self.obj.empty():
- temp = self.obj.get()
- self.Sortie.set("Sorti {0}".format(temp))
- self.AfficherStatut()
- if __name__ == '__main__':
- def Centrer(window):
- # recupere largeur et hauteur de l'ecran
- largeurE = window.winfo_screenwidth()
- hauteurE = window.winfo_screenheight()
- # recupere largeur et hauteur de la fenetre
- largeurF = window.winfo_reqwidth()
- hauteurF = window.winfo_reqheight()
- xc = (largeurE-largeurF)/2
- yc = (hauteurE-hauteurF)/2
- window.geometry("%dx%d+%d+%d"%(largeurF,hauteurF,xc,yc))
- window.deiconify()
- root = Tk()
- #root.withdraw()
- root.title('Tests File - FIFO')
- demo = TestFiles(root)
- root.after(3,Centrer,root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement