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. Calling a binary file (Openfoam solver) through QT
Forum Updated to NodeBB v4.3 + New Features

Calling a binary file (Openfoam solver) through QT

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 4 Posters 2.9k Views 1 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.
  • Pablo J. RoginaP Pablo J. Rogina

    @JVRS welcome to the forum. Some things here.

    1. Whenener posting code snippets, please try to sorround it with proper markup :-)
    2. i'm newbie to qt

    More than ever, documentation is your friend. Try to spend some time getting familiar with the capabilities of the Qt classes you'll end up using. From QProcess documentation, you'll find this code snippet showing exactly what I guess you need, you'll figure out what is the proper code for your use case:

        QString program = "./path/to/Qt/examples/widgets/analogclock";
        QStringList arguments;
        arguments << "-style" << "fusion";
    
        QProcess *myProcess = new QProcess(this);
        myProcess->start(program, arguments);
    
    JonBJ Offline
    JonBJ Offline
    JonB
    wrote on last edited by
    #5

    @Pablo-J.-Rogina
    In this case the user is choosing to use the void QProcess::start(const QString &command, QIODevice::OpenMode mode = ReadWrite) overload, i.e. where the command is passed as a single string instead of separated arguments. I looked carefully at his arguments and cannot see a problem in terms of quoting, so I assume he would encounter the same error, whatever the cause is.

    1 Reply Last reply
    1
    • J JVRS

      @JonB said in Calling a binary file (Openfoam solver) through QT:

      finished

      Thank you for your fast response. I placed an output qDebug for the process state, error, exit code and exit status and got this:

      QProcess::ProcessState(NotRunning)
      QProcess::ProcessError(FailedToStart)
      1011073872
      QProcess::ExitStatus(21952)

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #6

      @JVRS

      QProcess::FailedToStart 0 The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.

      The usual cause is that icoFoam is not on the PATH used from the GUI app, but is from the command-line?

      Otherwise (apart from trying @Pablo-J-Rogina 's suggestion if it's a quoting problem, which I don't think it is): check http://doc.qt.io/qt-5/qprocess.html#readAllStandardError . You may be getting some info on stderr to tell you what the issue is.

      1 Reply Last reply
      0
      • Pablo J. RoginaP Pablo J. Rogina

        @JVRS welcome to the forum. Some things here.

        1. Whenener posting code snippets, please try to sorround it with proper markup :-)
        2. i'm newbie to qt

        More than ever, documentation is your friend. Try to spend some time getting familiar with the capabilities of the Qt classes you'll end up using. From QProcess documentation, you'll find this code snippet showing exactly what I guess you need, you'll figure out what is the proper code for your use case:

            QString program = "./path/to/Qt/examples/widgets/analogclock";
            QStringList arguments;
            arguments << "-style" << "fusion";
        
            QProcess *myProcess = new QProcess(this);
            myProcess->start(program, arguments);
        
        J Offline
        J Offline
        JVRS
        wrote on last edited by
        #7

        @Pablo-J.-Rogina thanks for your response and advice :)
        I've already provided full path to the binary i want to run and separated the arguments like this:

        QString program = "/opt/openfoam5/platforms/linux64GccDPInt32Opt/bin/icoFoam";
                QStringList arguments;
                arguments << "-case" << "/home/jvrs/ProjetosQT/Aplicação_Beta/SimulationData/NewCases/123";
        
                QProcess *myProcess = new QProcess(this);
                myProcess->start(program, arguments);
        
        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #8

          You are passing non-ascii input (çã) without specifying any encoding/decoding. try renaming your folder to ascii only. if it works then you just have to handle unicode more carefully when creating strings

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          JonBJ 1 Reply Last reply
          4
          • VRoninV VRonin

            You are passing non-ascii input (çã) without specifying any encoding/decoding. try renaming your folder to ascii only. if it works then you just have to handle unicode more carefully when creating strings

            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by
            #9

            @VRonin
            Now I wondered about just that. But user states command works from "command-line". Also, those chars look UTF-8, and Linux filing system is supposed to be UTF-8.

            If he does not want to "rename the folder" (why should he?), what does he have to do for passing to QProcess that he does not have to do in a Linux shell. I'd like to understand this, if you'd be kind enough, as otherwise I consider myself a bit of Linux-process-wizard :)

            1 Reply Last reply
            0
            • J Offline
              J Offline
              JVRS
              wrote on last edited by
              #10

              @Pablo-J-Rogina I've tried what you suggested and it didn't work.
              @VRonin i've already changed the folder name and it is the same.
              @JonB yes if I type that command on command line it runs.

              0_1529074012615_Captura de ecrã de 2018-06-15 15-40-44.png

              I just want to simply do the same but on qt with the press of a button.
              Thank you all , as a new user i need to wait a certain amount of time in order to post again. sorry for the delay.

              JonBJ Pablo J. RoginaP 2 Replies Last reply
              0
              • J JVRS

                @Pablo-J-Rogina I've tried what you suggested and it didn't work.
                @VRonin i've already changed the folder name and it is the same.
                @JonB yes if I type that command on command line it runs.

                0_1529074012615_Captura de ecrã de 2018-06-15 15-40-44.png

                I just want to simply do the same but on qt with the press of a button.
                Thank you all , as a new user i need to wait a certain amount of time in order to post again. sorry for the delay.

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by
                #11

                @JVRS

                @JonB yes if I type that command on command line it runs.

                Yes, I understand that.

                I really think you should act on my previous:

                check http://doc.qt.io/qt-5/qprocess.html#readAllStandardError . You may be getting some info on stderr to tell you what the issue is.

                1 Reply Last reply
                0
                • J JVRS

                  @Pablo-J-Rogina I've tried what you suggested and it didn't work.
                  @VRonin i've already changed the folder name and it is the same.
                  @JonB yes if I type that command on command line it runs.

                  0_1529074012615_Captura de ecrã de 2018-06-15 15-40-44.png

                  I just want to simply do the same but on qt with the press of a button.
                  Thank you all , as a new user i need to wait a certain amount of time in order to post again. sorry for the delay.

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

                  @JVRS How are you running your Qt application? If it's from Qt Creator, please trying launching Qt Creator from command line, not from menu entry so to have exactly same PATH value

                  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

                  J 1 Reply Last reply
                  3
                  • Pablo J. RoginaP Pablo J. Rogina

                    @JVRS How are you running your Qt application? If it's from Qt Creator, please trying launching Qt Creator from command line, not from menu entry so to have exactly same PATH value

                    J Offline
                    J Offline
                    JVRS
                    wrote on last edited by
                    #13

                    @Pablo-J.-Rogina Bingo! it runs!! thank you so much !! :) why is that? Do i always need to launch the application from command line?

                    Apart from this i also tried a different solver, i.e, instead of icoFoam, i used another solver. Similarly is works perfectly on command line, but when i launch from qt it doens't work, even if qt is launched from commandline.
                    Is this something similarly to my initial problem?

                    Pablo J. RoginaP 1 Reply Last reply
                    0
                    • J JVRS

                      @Pablo-J.-Rogina Bingo! it runs!! thank you so much !! :) why is that? Do i always need to launch the application from command line?

                      Apart from this i also tried a different solver, i.e, instead of icoFoam, i used another solver. Similarly is works perfectly on command line, but when i launch from qt it doens't work, even if qt is launched from commandline.
                      Is this something similarly to my initial problem?

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

                      @JVRS said in Calling a binary file (Openfoam solver) through QT:

                      why is that? Do i always need to launch the application from command line?

                      Weather your Qt app is launched from command line or from Qt Creator what you need is that the PATH and eventually LD_LIBRARY_PATH, are set properly so the process you're launching from Qt app is found and all the libraries it requires are available.

                      If you issue if solved now, please don't forget to mark it as such. Thanks

                      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

                      J 1 Reply Last reply
                      3
                      • Pablo J. RoginaP Pablo J. Rogina

                        @JVRS said in Calling a binary file (Openfoam solver) through QT:

                        why is that? Do i always need to launch the application from command line?

                        Weather your Qt app is launched from command line or from Qt Creator what you need is that the PATH and eventually LD_LIBRARY_PATH, are set properly so the process you're launching from Qt app is found and all the libraries it requires are available.

                        If you issue if solved now, please don't forget to mark it as such. Thanks

                        J Offline
                        J Offline
                        JVRS
                        wrote on last edited by
                        #15

                        @Pablo-J.-Rogina Thank you very much for your help !! Regards

                        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