2010-11-24 6 views

Antwort

2

Es ist ein bekannter alter Fehler: http://bugreports.qt-project.org/browse/QTBUG-2284. Sie müssen die Funktion startDetached überlasten, um Ihre eigene Umgebung zu unterstützen. Werfen Sie einen Blick auf Qt-Quellen, um zu sehen, wie das geht: http://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/io?h=5.5 (qprocess* Dateien).

+0

Zwingende startDetached() sollte das Problem lösen können, wird dies morgen versuchen. Erstaunt zu erfahren, wie lange dieser Fehler anhält. Putenv() im Benutzercode aufrufen zu müssen, ist hässlich. Dies hätte in Qt gemacht werden sollen. –

+0

Und anscheinend wurde dieser Fehler immer noch nicht behoben. Ich benutze Qt 4.8.4 und habe das gleiche Problem. Ich versuche, eine externe Konsolen-App aus meiner Qt-Anwendung zu starten und möchte das Konsolenfenster sehen, aber ich muss auch verschiedene Umgebungseinstellungen für diesen Prozess einstellen und das funktioniert nicht, wenn ich es losgelöst starte. – Jeff

0

Mit Qt5.5 jetzt, laufen Sie auf dieses Problem.

Unter Win7, Used code unten, Set Umgebung in Vater-Prozess, Es scheint, dass Subprozess erben die Umgebung. Nicht sicher, aber es hat in meinem Fall funktioniert.

Hoffnung gibt es bessere Lösungen

QString oldPath = qgetenv("Path"); 
QByteArray newPath = (QCoreApplication::applicationDirPath() + ";" + oldPath).toLocal8Bit(); 
bool bSet = qputenv("Path", newPath); 
if (!bSet) 
{ 
    qDebug()<<"Failed"; 
}