Programm schliesen wärend in der dauert Whileschleife

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Riguna
User
Beiträge: 1
Registriert: Freitag 14. Dezember 2018, 17:09

Hallo,

ich arbeite gerade an ein kleines Programm welches nachdem ich den Start Button so lang von selbst laufen soll bis der Cancel Butten betätigt wird. Dafür Programiere ich in Python(X,Y) und habe die Graphische Oberfläche in QtDesigner erstellt.
Dafür habe ich zu beginn die application gestartet, das erstellte Fenster geöffnet und anzeigen lassen. Nun warte ich bis der Start Button gedrückt wird und füre dann die von mir erstelle Funktion aus die eine while 1: schleife beinhaltet.
Mein Problem ist jetzt dass das Programm nun nicht mehr auf die Buttons reagiert und ich so das Programm nicht mehr anhalten kann.
Gibt es denn eine Möglichkeit das zu umgehen oder die Funktion immer wieder auszuführen bis der Cancel Butten gedrückt wird?

Grüße
Matthias
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

grundsätzlich: Endlosschleifen in einer GUI gehen nie, weil du damit den Mainloop der GUI blockierst und die GUI dadurch nicht mehr reagiert.

Abhilfe: du musst die Funktion, die was machen soll, solange immer wieder periodisch aufrufen, bis Stop gedrückt wurde. Dazu kennt Qt sicherlich, wie alle andere GUIs auch, entsprechende Methoden.

Gruß, noisefloor
Antworten