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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.

PS je suis sous debian