progression de la jauge avec l'avancement de la fonction
salut,
je veux que la progression de la jauge reflète l'avancement de l'exécution de la fonction mais en fait jai un problème.dans ma fonctions jai plusieurs boucle while et for et je ne sait pas comment faire:?:?quelqu'un a une idée?voici le code de la fonction,jai mis la jauge mais elle n'est pas synchrone avec l'exécution de la fonction.
Code:
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
|
def relations(self,event):
self.g1.Show(True)
liste=os.listdir(maissa.path1)
liste2=glob.glob(maissa.path1)
liste7=[]
liste4=[]
liste3=[]
liste_glob=[]
liste6=[]
f2=open("relation.txt",'w')
self.g1.SetRange(len(liste))
for i in range(len (liste)):
self.g1.SetValue(i)
#wx.Yield()
self.textcount.SetLabel(str((100*i/len(liste)))+" %")
#****************************
path_s=liste2[0]+'\\' + liste[i]
if liste[i]=="KRN_ASW.H":
f1=open(path_s,'r')
liste_glob=relation_krn.proc3(liste_glob,f1)
if (('_fct' in liste[i]) and (liste[i].endswith('.c'))or ('_FCT' in liste[i])) and (liste[i].endswith('.C')):
liste3=tab5_fct.proc(liste3,path_s)
X=path_s.endswith("_SCH.C") or path_s.endswith("_SCH.c")or path_s.endswith("_sch.c")or path_s.endswith("_sch.C")
if X == True:
liste4=tab5_sch.proc2(liste4,path_s)
liste5=liste3+liste4
print "len de liste5 est ",len(liste5)
for i in range(len(liste_glob)):
liste = liste_glob[i]
for j in range(len(liste5)):
listea=liste5[j]
if liste[-1] == listea[0]:
a=liste+listea[1:len(listea)+1]
liste6.append(a)
i=0
cnt=0
while i <= len(liste6):
cnt=0
liste=liste6[i]
j=0
while j<=len(liste5):
listeb=liste5[j]
if ( liste[-1]==listeb[0] ):
b=liste+listeb[1:len(listeb)+1]
liste6.append(b)
j=j+1
if (j > len(liste5)-1):
break
i=i+1
if (i > len(liste6)-1):
break
print "len de liste6 est ",len(liste6)
#****************************************************************************
k=0
cnt=0
while k <= len(liste6):
cnt=0
liste=liste6[k]
j=0
while j<=len(liste5):
listeb=liste5[j]
if ( liste[-1]!=listeb[0] ):
cnt=cnt+1
j=j+1
if (j > len(liste5)-1):
break
if cnt==len(liste5):
liste7.append(liste)
f2.write(str(liste)+'\n')
k=k+1
if (k > len(liste6)-1):
break
print "liste7 ",len(liste7)
self.textcount.SetLabel("100%")
dlg = wx.MessageDialog(self, 'Fin dexecution', 'Import relations', wx.OK|wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
self.g1.Show(False)
self.textcount.Show(False) |