[PySide] using QProcess to run python function

Frank Rueter | OHUfx frank at ohufx.com
Fri Jan 24 03:17:26 CET 2014


Sorry if I'm being thick, but I'm not quite understanding how this helps 
to connect a python function to qprocess?! All your code does is execute 
the script, right?!
I can already call myscript.main() straight up, but maybe I'm missing 
the point as I'm unfamiliar with the imp module.

Let me elaborate a little bit more:
myscript.main() calls a bunch of other python scripts that (directly or 
through other scripts again) execute external programs to do some 
conversion work. Those external programs spit out their progress to 
stdout which I can see fine when I run myscript.main() manually in a 
python terminal.

Now I need run myscript.main() via QProcess and grab stdout to do be 
able to show a progress bar as well as show stdout and stderr in a debug 
window inside my QT code.


Cheers,
frank



On 24/01/14 14:58, Ryan Gonzalez wrote:
> If you put an "if __name__ == '__main__'" and a main functions, you 
> could always import the script from the GUI frontend. Example:
>
> myscript.py
>
> def main(argv):
>     do_cool_stuff()
>     return 0
>
> if __name__ == '__main__':
>     sys.exit(main(sys.argv))
>
> mygui.py(Python 2):
>
> import imp
>
> ...
>
> main = imp.load_module('myscript', *imp.find_module('myscript'))
>
> main.main(my_argv)
>
> mygui.py(Python 3):
>
> import importlib.machinery
>
> main = importlib.machinery.SourceFileLoader('myscript', 
> 'myscript.py').load_module('myscript')
>
> main.main(my_argv)
>
>
> On Thu, Jan 23, 2014 at 7:48 PM, Frank Rueter | OHUfx <frank at ohufx.com 
> <mailto:frank at ohufx.com>> wrote:
>
>     Hi all,
>
>     I got a little code design question:
>
>     I have a python script that does a lot of file
>     processing/converting/uploading etc and I'd like to write a decent
>     interface for it now.
>     The main goal is to be able to show the user detailed info about the
>     current step and progress as well as clean up properly in case the
>     whole
>     thing is cancelled.
>
>     My existing python code needs to stay independent of QT so any
>     application that supports python can use it.
>     I am wondering now how to best connect the python script and the
>     PySide
>     code. Should I just run the script as an argument to the python
>     interpreter like I would with any other program? E.g.:
>
>     process = QtCore.QProcess(self)
>     process.start(<path_to_python>, <path_to_python_script>)
>
>     As simple as this seems, it feels odd to use python to call itself
>     as an
>     external program.
>
>
>     I'm happy to go that way but am curious how others are doing this?!
>
>     Cheers,
>     frank
>
>     _______________________________________________
>     PySide mailing list
>     PySide at qt-project.org <mailto:PySide at qt-project.org>
>     http://lists.qt-project.org/mailman/listinfo/pyside
>
>
>
>
> -- 
> Ryan
> If anybody ever asks me why I prefer C++ to C, my answer will be 
> simple: "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't 
> think that was nul-terminated."
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20140124/c68eac46/attachment.html>


More information about the PySide mailing list