Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Run python script in Qt
Forum Updated to NodeBB v4.3 + New Features

Run python script in Qt

Scheduled Pinned Locked Moved Solved General and Desktop
31 Posts 9 Posters 17.2k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N NotYourFan

    i reinstalled python and checked the variables … all fine.
    And as i said, when i run the Script with cmd ( cmd -> python.exe "path/createJSON.py") it works perfect

    J.HilkJ Online
    J.HilkJ Online
    J.Hilk
    Moderators
    wrote on last edited by
    #4

    @NotYourFan
    well, have you tried giving QProcess the absolute path to the python file, as you did in your cmd prompt ?


    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    1 Reply Last reply
    2
    • N Offline
      N Offline
      NotYourFan
      wrote on last edited by
      #5

      yes of coruse, like:

      void TestWindow::loadFile()
          QProcess p;
          QStringList params;
      
          params << "createJSON.py";
          p.start("C:/development/Python/Python37/python.exe", params);
          p.waitForFinished(-1);
          QString p_stdout = p.readAll();
      
      J.HilkJ 1 Reply Last reply
      0
      • N NotYourFan

        yes of coruse, like:

        void TestWindow::loadFile()
            QProcess p;
            QStringList params;
        
            params << "createJSON.py";
            p.start("C:/development/Python/Python37/python.exe", params);
            p.waitForFinished(-1);
            QString p_stdout = p.readAll();
        
        J.HilkJ Online
        J.HilkJ Online
        J.Hilk
        Moderators
        wrote on last edited by J.Hilk
        #6

        @NotYourFan said in Run python script in Qt:
        I actually meant the absolute path to

        createJSON.py

        I assume createJSON.py is inside your project folder and you start the program via QtCreator but, the created exe is not in your project folder -> so it can't find the python script


        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        1 Reply Last reply
        1
        • N Offline
          N Offline
          NotYourFan
          wrote on last edited by
          #7

          Sry @J-Hilk i missunderstood.

          But i try this also …

          like:

          void TestWindow::loadFile()
              QProcess p;
              QStringList params;
          
              params << "C:/development/Qt/ProjektXY/createJSON.py";
              p.start("C:/development/Python/Python37/python.exe", params);
              p.waitForFinished(-1);
              QString p_stdout = p.readAll();
          

          i´m desperately … i dont know what to do, i try everything.

          J.HilkJ 1 Reply Last reply
          0
          • N NotYourFan

            Sry @J-Hilk i missunderstood.

            But i try this also …

            like:

            void TestWindow::loadFile()
                QProcess p;
                QStringList params;
            
                params << "C:/development/Qt/ProjektXY/createJSON.py";
                p.start("C:/development/Python/Python37/python.exe", params);
                p.waitForFinished(-1);
                QString p_stdout = p.readAll();
            

            i´m desperately … i dont know what to do, i try everything.

            J.HilkJ Online
            J.HilkJ Online
            J.Hilk
            Moderators
            wrote on last edited by
            #8

            @NotYourFan since you're on windows, you're using the wrong path separator


            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


            Q: What's that?
            A: It's blue light.
            Q: What does it do?
            A: It turns blue.

            jsulmJ 1 Reply Last reply
            0
            • N Offline
              N Offline
              NotYourFan
              wrote on last edited by
              #9

              @J-Hilk whats the Right path separator?

              J.HilkJ 1 Reply Last reply
              0
              • N NotYourFan

                @J-Hilk whats the Right path separator?

                J.HilkJ Online
                J.HilkJ Online
                J.Hilk
                Moderators
                wrote on last edited by J.Hilk
                #10

                @NotYourFan
                https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words


                backslash or probably double backslash


                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                Q: What's that?
                A: It's blue light.
                Q: What does it do?
                A: It turns blue.

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  NotYourFan
                  wrote on last edited by
                  #11
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    NotYourFan
                    wrote on last edited by
                    #12

                    okay, thx for your Suggestion.

                    void TestWindow::loadFile()
                        QProcess p;
                        QStringList params;
                    
                        params << "C:\\development\\Qt\\ProjektXY\\createJSON.py";
                        p.start("C:\\development\\Python\\Python37\\python.exe", params);
                        p.waitForFinished(-1);
                        QString p_stdout = p.readAll();
                    

                    i tried one time with Backslash and one time with double Backslash … same Problem.

                    1 Reply Last reply
                    0
                    • J.HilkJ J.Hilk

                      @NotYourFan since you're on windows, you're using the wrong path separator

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #13

                      @J.Hilk said in Run python script in Qt:

                      since you're on windows, you're using the wrong path separator

                      With Qt / should work on Windows as well, shouldn't it?

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      J.HilkJ aha_1980A 2 Replies Last reply
                      0
                      • jsulmJ jsulm

                        @J.Hilk said in Run python script in Qt:

                        since you're on windows, you're using the wrong path separator

                        With Qt / should work on Windows as well, shouldn't it?

                        J.HilkJ Online
                        J.HilkJ Online
                        J.Hilk
                        Moderators
                        wrote on last edited by
                        #14

                        @jsulm I'm unsure

                        usually yes, but in this case you're trying to start a System program from the OS. Until now, I've always only used it to start an external program, that I shipped with the other Qt installation and therefore was always at the same depth as the main executable or it was on a unix system...

                        @NotYourFan
                        have you seen this thread ?
                        https://stackoverflow.com/questions/15127047/qt-calling-external-python-script

                        It may help you


                        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                        Q: What's that?
                        A: It's blue light.
                        Q: What does it do?
                        A: It turns blue.

                        aha_1980A 1 Reply Last reply
                        0
                        • jsulmJ jsulm

                          @J.Hilk said in Run python script in Qt:

                          since you're on windows, you're using the wrong path separator

                          With Qt / should work on Windows as well, shouldn't it?

                          aha_1980A Offline
                          aha_1980A Offline
                          aha_1980
                          Lifetime Qt Champion
                          wrote on last edited by
                          #15

                          @jsulm

                          With Qt / should work on Windows as well, shouldn't it?

                          It is really important to use forward slashes for Qt functions, yes. However, the parameter for python (the path to the script) is not evaluated from Qt but from the python interpreter, so here backslashes might be needed.

                          That gives:

                          params << "C:\\development\\Qt\\ProjektXY\\createJSON.py";
                          p.start("C:/Development/Python/Python37/python.exe", params);
                          

                          Looks funny, though.

                          p.waitForFinished(-1); I would use a SLOT here.

                          And for testing: can you just try python -c 'print "Hello World"' first?

                          Qt has to stay free or it will die.

                          1 Reply Last reply
                          3
                          • J.HilkJ J.Hilk

                            @jsulm I'm unsure

                            usually yes, but in this case you're trying to start a System program from the OS. Until now, I've always only used it to start an external program, that I shipped with the other Qt installation and therefore was always at the same depth as the main executable or it was on a unix system...

                            @NotYourFan
                            have you seen this thread ?
                            https://stackoverflow.com/questions/15127047/qt-calling-external-python-script

                            It may help you

                            aha_1980A Offline
                            aha_1980A Offline
                            aha_1980
                            Lifetime Qt Champion
                            wrote on last edited by
                            #16

                            @J.Hilk said in Run python script in Qt:

                            usually yes, but in this case you're trying to start a System program from the OS

                            As said, the path for QProcess should work with forward slash. The path for the parameter (the script) probably not.

                            Qt has to stay free or it will die.

                            1 Reply Last reply
                            0
                            • N Offline
                              N Offline
                              NotYourFan
                              wrote on last edited by
                              #17

                              @J-Hilk thank you for the stackoverflow link, i've seen it and try it.
                              @aha_1980 i test python -c 'print "Hello World"' --> i get Nothing.

                              aha_1980A 1 Reply Last reply
                              0
                              • N NotYourFan

                                @J-Hilk thank you for the stackoverflow link, i've seen it and try it.
                                @aha_1980 i test python -c 'print "Hello World"' --> i get Nothing.

                                aha_1980A Offline
                                aha_1980A Offline
                                aha_1980
                                Lifetime Qt Champion
                                wrote on last edited by
                                #18

                                @NotYourFan said in Run python script in Qt:

                                @aha_1980 i test python -c 'print "Hello World"' --> i get Nothing.

                                How did you test it?

                                Qt has to stay free or it will die.

                                1 Reply Last reply
                                0
                                • N Offline
                                  N Offline
                                  NotYourFan
                                  wrote on last edited by
                                  #19

                                  put python -c 'print "Hello World"' in p.start

                                  Pablo J. RoginaP jsulmJ JonBJ 3 Replies Last reply
                                  0
                                  • N NotYourFan

                                    put python -c 'print "Hello World"' in p.start

                                    Pablo J. RoginaP Offline
                                    Pablo J. RoginaP Offline
                                    Pablo J. Rogina
                                    wrote on last edited by
                                    #20

                                    @NotYourFan just in case, you may want to use Python embedded in your Qt application...

                                    Upvote the answer(s) that helped you solve the issue
                                    Use "Topic Tools" button to mark your post as Solved
                                    Add screenshots via postimage.org
                                    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                                    1 Reply Last reply
                                    0
                                    • N NotYourFan

                                      put python -c 'print "Hello World"' in p.start

                                      jsulmJ Offline
                                      jsulmJ Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #21

                                      @NotYourFan It doesn't work like this. You have to put the command as first parameter to start() and all parameters for the command as parameter list.

                                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      Gojir4G 1 Reply Last reply
                                      1
                                      • jsulmJ jsulm

                                        @NotYourFan It doesn't work like this. You have to put the command as first parameter to start() and all parameters for the command as parameter list.

                                        Gojir4G Offline
                                        Gojir4G Offline
                                        Gojir4
                                        wrote on last edited by
                                        #22

                                        @jsulm Are you sure about that ?
                                        from Qt Doc:

                                        QProcess process;
                                        process.start("del /s *.txt");
                                        
                                        1 Reply Last reply
                                        0
                                        • N Offline
                                          N Offline
                                          NotYourFan
                                          wrote on last edited by NotYourFan
                                          #23

                                          @jsulm i readed in the Qt Doc.
                                          @Gojir4 you are right.
                                          @Pablo-J-Rogina thx for your Suggestion … but i should / want to do it with QProcess …

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved