2 Ce module permet de créer, mettre à jour et détruire
7 from centerwindow import centerwindow
8 from Tools.foztools.foztools import Slider
14 def init_splash(*pos,**args):
16 _splash=SplashScreen(*pos,**args)
23 class SplashScreen(Toplevel):
25 Provides a splash screen. Usage:
26 Subclass and override 'CreateWidgets()'
27 In constructor of main window/application call
28 - S = SplashScreen(main=self) (if caller is Toplevel)
29 - S = SplashScreen(main=self.master) (if caller is Frame)
30 - S.quit() after you are done creating your widgets etc.
32 def __init__(self, master=None,**args):
33 Toplevel.__init__(self, master, relief='groove',
36 if self.main != None :
39 self.frame = Frame(self)
40 self.frame.pack(expand=1,fill='both')
42 self.geometry("300x200")
48 def init(self,args={}):
49 self.text = StringVar()
51 self.text2 = StringVar()
53 self.icone = 'logo_edf.gif'
55 if args == {} : return
56 if args.has_key('text'):
57 self.text.set(args['text'])
58 if args.has_key('info'):
59 self.text2.set(args['info'])
60 if args.has_key('titre'):
61 self.title(args['titre'])
62 if args.has_key('code'):
63 self.code = args['code']
66 if args.has_key('icone'):
67 self.icone = args['icone']
68 if self.code == 'ASTER' :
69 self.icone = 'code_aster.gif'
70 elif self.code == 'SATURNE':
71 self.icone = 'code_saturne.gif'
72 elif self.code == 'DESCARTES':
73 self.icone = 'code_descartes.gif'
75 def CreateWidgets(self):
76 self.catIcon = images.get_image(self.icone)
77 self.label = Label(self.frame, image=self.catIcon)
78 self.label.pack(side=TOP)
79 self.label = Label(self.frame, textvariable=self.text,font = fontes.standard_gras)
80 self.label.pack(side=TOP,expand=1,fill='both')
81 self.label2 = Label(self.frame, textvariable=self.text2,font = fontes.standard_italique)
82 self.label2.pack(side=TOP,expand=1,fill='both')
83 self.progress = Slider(self.frame,value=0,max=100,orientation='horizontal',
84 fillColor='#00008b',width=200,height=30,
85 background='white',labelColor='red')
88 def update_barre(self,event=None):
89 """ Permet de faire avancer la barre de progression """
91 self.progress.value = self.progress.value+self.increment
92 self.progress.update()
96 def configure_barre(self):
98 Calcule l'incrément de progression de la barre en fonction
99 du nombre d'opérations à effectuer afin que le compteur
100 soit à 100% à la fin des opérations
102 self.increment = 100./self.ratio
103 self.progress.update()
105 def configure(self,**args):
106 if args.has_key('text'):
107 self.text.set(args['text'])
108 if args.has_key('info'):
109 self.text2.set(args['info'])
110 if args.has_key('titre'):
111 self.title(args['titre'])
112 if args.has_key('barre'):
114 self.barre = args['barre']
115 if self.barre == 'oui' and old == 'non':
116 self.progress.frame.pack(in_=self.frame,side='top')
117 elif self.barre == 'non' and old == 'oui':
118 self.progress.frame.pack_forget()
119 if args.has_key('ratio'):
120 self.ratio = args['ratio']
121 self.configure_barre()
129 self.main.deiconify()
130 centerwindow(self.main,parent='sans')