1. You should reset self.in_error=False in __retry_process to get __retry_process called again , as a good practice , I would get ride of self.in_error and use if (process_state == QtCore.QProcess.NotRunning) and self.current_try < 5 instead . 2. If the above solution didn't work, maybe there is a bug with PySide, please give a try with PyQt5.
: At 2019-06-01 15:26:49, "Frank Rueter | OHUfx" <fr...@ohufx.com> wrote: >Hi all, > >I am using QProcess to launch an external application. The main part >work without trouble, but I need to check for license errors and if one >occurred, I need would like to restart the existing process with all >it's environment settings and signal connections a certain number of times. > >I connect QProcess.readyReadStandardError to a slot that toggles an >attribute called self.in_error to True. >I also connect QProcess.stateChanged to another slot which looks like this: > > def __retry_process(self, process_state): > max_retries = 5 > if (process_state == QtCore.QProcess.NotRunning) and self.in_error: > # process has finished in an error state, so try to run it >again > self.current_try += 1 > print 'retrying {}/{}'.format(self.current_try, max_retries) > self.process.start(self.process.program(), >self.process.arguments()) > >This prints the line "retrying 1/5" but after that nothing happens. I >can't see any log output from self.process so if seems to simply not be >running the second time around. >I thought this would recursively call self.process 5 times after failing >the first time, since self.process.stateChanged is still connected to >self__retry_process(), and the current_try attribute is on class level >where it gets incremented on every unsuccessful try. > >I am obviously wrong about that. Could someboy help me out please? > >Cheers, >frank >_______________________________________________ >PySide mailing list >PySide@qt-project.org >https://lists.qt-project.org/listinfo/pyside
_______________________________________________ PySide mailing list PySide@qt-project.org https://lists.qt-project.org/listinfo/pyside