wx.App.Yield() et freeze de mon interface
Bonjour,
Deux jours que je me prend la tête sur un freeze de mon interface. Voici le code simplifié. Après avoir cliqué sur oui, ma progressbar n'est pas mise à jour (la plupart du temps) et on a donc l'impression que mon programme est planté...
Suis-je obligé de passer par un thread pour résoudre ce problème?
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
| #!/usr/bin/python
# -*- coding:utf-8 -*-
import sys, wx, Utilities
class MonAppli(wx.App):
def OnInit(self):
self.fen = wx.Frame(None, -1, "ma frame", size = (1020, 700))
self.monPanneau = wx.Panel(self.fen, -1, pos=(25,50), size=(600,600))
self.fen.Show()
a = 0
maBarre = wx.ProgressDialog("Please wait...", "", 10)
maBarre.Update ( 4, 'Step 4/10')
dlg = wx.MessageDialog(self.fen, "mon message",
'', wx.YES_NO | wx.ICON_INFORMATION)
if dlg.ShowModal() == wx.ID_YES:
dlg.Destroy()
maBarre.Update ( 5, 'Step 5/10')
self.Yield()
while a < 1000000000:
a = a +1
print a
return True
myApp = MonAppli()
myApp.MainLoop() |
Merci de votre aide. :roll:
PS je suis sous debian