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 <[email protected] <mailto:[email protected]>> 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
    [email protected] <mailto:[email protected]>
    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."


_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to