Important: Please read the Qt Code of Conduct -

Qt and QtPy in one program

  • Hi everyone, I am new to Qt and I am actually looking for informations about Qt before using it for my project.
    I would like to know if it is possible to use QT ( C++ ) and QtPy ( Python ) languages in the same program's code?
    Is it possible to call a pythons script (.py) directly from my code in Qt?


  • @Freddykong
    I think you need to clarify just what/why you are trying to do which would require both Qt for C++ and Qt for Python to be run inside a project? It's usual to need just one or the other.

    Is it possible to call a pythons script (.py) directly from my code in Qt?

    You can always run any kind of sub-process, including running some standalone Python script/code, via QProcess::start(). But if that script is intended to access things inside your actual parent program, or use Qt calls to access Qt objects/UI in the calling program, that is a different matter....

  • @Freddykong could you please describe what could be an use case for having both Qt (C++) and Qt (Python) sources at the same application?

    In any case, instead of running the Python script as a separate/child process as suggested by @JonB you may want to embed a Python interpreter in your C++ code

  • I don't know if I got the question right,
    but the kind of interaction you describe could be possible by "extending" and existing Qt/C++ application to use Qt/Python code.

    Take a look at this example:
    There, there is a Qt/C++ Window that shows some Python code which you can run and interact with the Qt/C++ object itself.

    Please be aware that many things need to be consider, and that you must handle the embedded Python and generate Python bindings for your Qt/C++ potion of code that you want to interact with.

    Another use-case which was based on that example, is the research that is currently on-going regarding extending QtCreator with Python:

    I hope those cases are in the same direction as your question.

Log in to reply