簡體   English   中英

啟動控制台應用程序,該應用程序使用來自QT Gui應用程序的環境變量

[英]Launch console application which uses environment variables from QT Gui application

我目前正在使用QT4.8制作GUI,這基本上需要啟動控制台應用程序。 但是,由於此控制台應用程序嘗試獲取一些環境變量,所以我似乎無法設法使它起作用。 我顯然正在使用QProcess,並嘗試了幾種解決方案:

process->start("./yarpbridge", QStringList() << "--from" << "tmp.ini");

該解決方案不會產生控制台窗口,而且,通過將輸出重定向到qDebug() ,它可以打印出缺少環境變量的錯誤信息。

process->start("gnome-terminal", QStringList() << "-e" << "zsh" << "-c" << "\"./yarpbridge --from tmp.ini"\");

此解決方案確實啟動了控制台窗口,但是它仍然顯示錯誤消息,因為打開控制台窗口時可能不參考.zshrc。

您是否有一個解決方案可以使我做到這一點,甚至更好的解決方案不僅適用於“ gnome-terminal”和“ zsh”用戶?

非常感謝,

您可以發布您收到的錯誤嗎?

這很奇怪,因為您不需要啟動終端即可運行CLI程序,也許在發布錯誤消息后,我可能會知道問題出在哪里。

您也可以嘗試以下方法:

#include <stdio.h>

char buffer[1024];
FILE* fd = popen("/path/to/yarpbridge", "r");

if (fd == NULL) {
    // Error: do something
}

while(NULL != fgets(buffer, sizeof(buffer), fd)) {
    QString s(buffer);
    s = s.stripWhiteSpace();
    // s contains the output, pretty much as readAllStandardOutput() in QProcess
}

// don't forget to close file.
close (fd);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM