Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: wxpython: updating gauge  (gelezen 2233 keer)

Offline peer

  • Lid
wxpython: updating gauge
« Gepost op: 2021/03/13, 09:31:46 »
Ik probeer een progress bar (wx.gauge) in wxpython te updaten met de volgende regels:
for i in range(11):
            print(i)
            time.sleep(1)
            value = i*10
            self.gauge_1.SetValue(value)
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??

Offline peer

  • Lid
Re: wxpython: updating gauge
« Reactie #1 Gepost op: 2021/03/13, 13:13:53 »
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:
for i in range(11):
            print(i)
            time.sleep(1)
            value = i*10
            self.gauge_1.SetValue(value)
            wx.Yield()

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

Offline peer

  • Lid
Re: wxpython: updating gauge
« Reactie #2 Gepost op: 2021/03/15, 12:16:12 »
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.