【问题标题】:Supplying parameters to a Linux binary while running it from QtProcess从 QtProcess 运行 Linux 二进制文件时为其提供参数
【发布时间】:2013-03-22 12:35:40
【问题描述】:

Qprocess的标准使用方式如下:

 QObject *parent;
 ...
 QString program = "./path/to/Qt/examples/widgets/analogclock";
 QStringList arguments;
 arguments << "-style" << "motif";

 QProcess *myProcess = new QProcess(parent);
 myProcess->start(program, arguments);

但是,我要做的是在控制台 (sh) 上运行二进制文件,然后将输出从那里复制到 Qt 中的文本框。

所以现在我需要在myProcess-&gt;start(program, arguments); 中做的是在程序中传递sharguments 中的二进制名称。但是,如果我的二进制文件也接受命令行参数怎么办?我在哪里供应?

【问题讨论】:

    标签: c++ linux qt ubuntu


    【解决方案1】:

    你可以使用arguments()

    #include <QApplication>
    
    ...
    
    QStringList myArgs = qApp->arguments();
    
    myProcess->start(program, myArgs);
    

    【讨论】:

      【解决方案2】:

      我试过了:

      /home/user/1.sh

      #!/bin/sh
      
      echo $1 >> /home/user/1.out
      echo $2 >> /home/user/1.out
      echo $3 >> /home/user/1.out
      

      main.cpp

      #include <QtCore>
      
      int main(int argc, char *argv[])
      {
          QCoreApplication a(argc, argv);
      
          QString program = "sh";
          QStringList args;
          args << "/home/user/1.sh" << "qwe" << "123" << "c c c";
      
          QProcess p;
          p.start(program, args);
          p.waitForFinished();
      
          return 0;
      }
      

      运行我的应用后,我得到:

      1.out

      qwe
      123
      c c c
      

      似乎对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-15
        • 2019-10-20
        • 2016-04-17
        • 2011-04-26
        • 1970-01-01
        • 2011-05-23
        • 2011-04-28
        • 1970-01-01
        相关资源
        最近更新 更多