Hab das jetzt mal wie folgt gemacht:
Code: Alles auswählen
QString ErstelleMaseBefehlspfad = "./Pfad zur binaryDatei";
Prozess.start(ErstelleMaseBefehlspfad);
Prozess.waitForFinished();
QProcess::ExitStatus Status = Prozess.exitStatus();
if (Status == 0)
{
std::cout << "Die Anwendung wurde normal durchgeführt!" << std::endl;
ui.pushButtonSimstarten -> setEnabled(true);
}
if (Status == 1)
{
std::cout << "Die Anwendung wurde nicht ausgeführt.Es kam zu einem Fehler!" << std::endl;
}
Compiliert auch ohne Probleme und exitStatus() gibt auch 0 aus. Das Problem ist nur, dass die Anwendung nicht stattfindet. U.a. merke ich das daran, dass direkt nach Aktivierung der Methode durch den Button die Meldung "Die Anwendung wurde normal durchgeführt!" ausgegeben wird, obwohl die Anwendung dann noch garnicht beendet sein kann (wenn sie durchgelaufen wäre xD), da sie zumindest ein paar Sekunden braucht. Außerdem werden auch nicht die Dateien, welche die Anwendung erstellen sollte abgelegt.
Ist denn mit dem Quelltext alles in Ordnung? und geht es auch in Ordnung, dass ich bereits in der ErstelleOrdner Methode die WorkingDirectory für den Prozess festgelegt habe (siehe folgendes)?
Code: Alles auswählen
ErstelleOrdner()
{
Anweisung zur Erstellung der Ordner mit QFileDialog...
Prozess.setWorkingDirectory (erstellterHauptordner);
}
Im Terminal läuft die Anwendung normalerweise so ab, dass man in das Verzeichnis (Ordner) in dem bestimmte Dateien liegen wechselt und dann einfach den Befehl "blockMesh" aufruf. Die Anwednung erzeugt dann in einem Unterordner des gewählten Verzeichnisses neue Dateien.
Ich hoffe doch, dass ich mit der Kombination aus Prozess.setWorkingDirectory() und Prozess.start() "analog zum Vorgang im Terminal vorgegangen bin"?