ubuntuusers.de

QProcess Qt4 und OpenFoam

Status: Gelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

TerraG

Avatar von TerraG

Anmeldungsdatum:
11. Juli 2011

Beiträge: 343

Hi,

habe mit Qt4 eine Benutzeroberfläche mit einigen Funktionen programmiert und möchte nun QProcess verwenden, um aus der Benutzeroberfläche heraus ein Programm zu starten. Dazu habe ich ein paar Fragen:

Ich habe den Code

QDir Pfad;
Pfad.cd (erstellterHauptordner);   //ErstellterHauptordner ist QString Objekt

verwendet um in das Verzeichnis Pfad zu wechseln.

Nun möchte ich mit

QString ErzeugeGitterBefehlspfad = "blockMesh";

QObject *parent;
QProcess *ErzeugeGitter = new QProcess(parent);
     ErzeugeGitter->start(ErzeugeGitterBefehlspfad);

den OpenFoam Befehl "blockMesh" (Programm blockMesh) ausführen und zwar "auf" das Verzeichnis in das ich zu Beginn gewechselt habe.

Mit der Doku zu QProcess http://developer.qt.nokia.com/doc/qt-4.8/qprocess.html#details seh ich nicht ganz ob ich jetzt alles richtig gemacht habe. Im Beispiel der Doku ist der QString ein Pfad zum Programm, obendrüber steht aber, dass man den Namen des Programms übergeben soll (????) - wenn ich hier den Pfad zu "blockMesh" übergeben muss - wie finde ich diesen? Des weiteren würde ich gerne wissen was es mit dem Zeigerobjekt parent von QObjekt auf sich hat, welches ich an QProces übergeben muss?

jakon Team-Icon

Lokalisierungsteam

Anmeldungsdatum:
16. November 2009

Beiträge: 419

Pfad = Name.

Was ist „blockMesh“? Ist das eine C++-Funktion? Mit QProcess führt man nämlich ausführbare Programme aus (wie firefox, thunderbird, man, ls, etc.).

TerraG

(Themenstarter)
Avatar von TerraG

Anmeldungsdatum:
11. Juli 2011

Beiträge: 343

"blockMesh" ist ein Befehl, denn man im Terminal eingibt nachdem man in das passende Verzeichnis gewechselt ist. "blockMesh" ist Teil der CFD Software (FluidDynamicSoftware) OpenFoam(, wobei man mit dem Befehl ein Messgitter über seinen definierten Strömungsfall legt).

Antworten |