2017-06-19 77 views
-1

因此,在我現在下面的代碼中,它加載了gphoto2,沒有任何問題,並添加了--- shell開關。如何添加一行來向shell發出命令我想發送到shell的命令是「start-preview-stream」再次感謝!在QProcess啓動後發出命令

QProcess gphoto2; 
    gphoto2.start("gphoto2", QStringList() << "--shell"); 
    if (!gphoto2.waitForStarted()){ 
     qDebug("gPhoto2 didn't start properly"); 
     return 1; 
    } 

    qDebug("gPhoto2 Started Successfully"); 

調試顯示

gPhoto2 Started Successfully 

我自己也嘗試沒有運氣以下

QProcess gphoto2; 
     gphoto2.start("gphoto2", QStringList() << "--shell" << "start-preview-stream"); 
     if (!gphoto2.waitForStarted()){ 
      qDebug("gPhoto2 didn't start properly"); 
      return 1; 

     } 

     qDebug("gPhoto2 Started Successfully"); 

回答

0

如果您只需要該字符串發送給該進程的標準輸入流,你需要write()QProcess

QProcess gphoto2; 
gphoto2.start("gphoto2", QStringList() << "--shell"); 
if (!gphoto2.waitForStarted()){ 
    qDebug("gPhoto2 didn't start properly"); 
    return 1; 
} 

qDebug("gPhoto2 Started Successfully"); 

gphoto2.write("start-preview-stream\n"); 

(顯然,你需要添加一些適當的檢查返回值等)

+0

沒有去你的例子或這一個進程gphoto2; gphoto2start(「gphoto2」,QStringList()<<「--shell」<<「--hook-script = qrc:/src/hook.sh」);如果(!gphoto2.waitForStarted()){ qDebug(「gPhoto2未正確啓動」); return 1; } qDebug(「gPhoto2 Started Successful」); (!「開始預覽沒有寫入shell」); return 1; } qDebug(「Start Preview written to shell」); – demo7up

+2

您可能需要刷新輸出;我沒有時間編寫和測試一個完整的程序,而且這個問題沒有可以輕鬆複製和修改的[mcve]。 –