Запустите консольное приложение, которое использует переменные среды из приложения QT Gui

В настоящее время я делаю графический интерфейс с использованием QT4.8, который в основном должен запускать консольное приложение. Однако из-за того, что это консольное приложение пытается извлечь некоторые переменные среды, мне не удается заставить это работать.
Я, очевидно, использую 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»?

Большое спасибо,

0

Решение

Можете ли вы опубликовать ошибку, которую вы получаете?

Это очень странно, потому что вам не нужно запускать терминал для запуска программы 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]