Ondersteuning > Programmeren

wxpython: updating gauge

(1/1)

peer:
Ik probeer een progress bar (wx.gauge) in wxpython te updaten met de volgende regels:

--- Code: ---for i in range(11):
            print(i)
            time.sleep(1)
            value = i*10
            self.gauge_1.SetValue(value)

--- Einde van code ---
Tijdens de loop zie ik wel de printopdracht in de shell maar de progress bar verandert niet. Pas nadat de loop helemaal afgerond is dan wordt de progress bar in één keer aangepast.
Met google kwam ik bij tutorialspoint https://www.tutorialspoint.com/wxpython/wx_gauge_class.htm een voorbeeld tegen dat dezelfde structuur heeft als mijn programma.
Als ik dit voorbeeld uitvoer om mijn pc dan gebeurt precies hetzelfde. De progress bar wordt pas aan het einde van de veranderingen aangepast.

Net zoals het voorbeeld van tutorialspoints is mijn programma single threadth.

Wat mis ik hier? Waarom werkt het voorbeeld ook niet??

peer:
update:

ik heb nog even verder gegoogled. Ik vind bv. oplossing waarin gebruik wordt gemaakt van een timer.
Nog wat later vond ik een oplossing waarin één commando werd toegevoegd: wx.Yield()
Nu ziet het er als volgt uit:

--- Code: ---for i in range(11):
            print(i)
            time.sleep(1)
            value = i*10
            self.gauge_1.SetValue(value)
            wx.Yield()
--- Einde van code ---

Het is me niet duidelijk wat deze opdracht precies doet maar het werkt.

peer:
gisteren is mijn pc gecrashed tijdens het uitvoeren van een python programma. Python werkt niet meer, alle programma's die op python gebaseerd zijn werken niet meer. De fout onstond tijden het uitvoeren van een  "subprocess.Popen". Hierin werd het dd-command uitgevoerd (dus als root). 

Na een dag lang proberen dit te herstellen en te googlen op de foutmeldingen heb ik nu de handdoek in de ring gegooid en ben  ik de pc opnieuw aan het installeren.
Ik denk dat ik maar weer terug ga naar java.

Navigatie

[0] Berichtenindex

Naar de volledige versie