2010-01-27 20 views
9

Wie kann ich unter Linux Befehlszeilenprogramme von Qt4 ausführen? Und natürlich möchte ich die Ausgabe in irgendeiner Weise erhalten, die ich verwenden kann. Ich würde es für eine ls | grep verwenden, aber es ist gut für zukünftige Probleme zu wissen.Ausführen von Linux-Befehlen von Qt4

+0

Eine bestimmte Sprache? –

+1

QT impliziert C++. – hlovdal

+6

Außer wenn du über eine seiner Bindungen sprichst (ja, ich habe gesehen, dass das passiert), aber ich lasse es gleiten. –

Antwort

23
QProcess p; 
p.start(/* whatever your command is, see the doc for param types */); 
p.waitForFinished(-1); 

QString p_stdout = p.readAllStandardOutput(); 
QString p_stderr = p.readAllStandardError(); 
2

Verwenden Sie QProcess.

+1

Für einige Aufgaben könnte es einfacher (oder robuster) sein, Ihren eigenen Code zu rollen - Sie erwähnen ls | grep, möglicherweise QDir mit einem Filter oder QRegExp könnte tun, was Sie brauchen. Für den allgemeinen Fall ist QProcess jedoch der beste Weg. –

+0

Das ist eine großartige Beobachtung. Ich denke, ich werde es ein anderes Mal versuchen, aber die Frage war in diesem Fall auch etwas auf den allgemeinen Fall für zukünftige Anwendungen ausgerichtet. Danke trotzdem! – StJimmy

0

Wie wäre es mit popen?

+0

Nicht sehr viel Qt though ... – e8johan

+0

e8johan: True ... Ich verstehe, dass Sie QT API verwenden möchten, aber dachte, ich würde diese Antwort geben. :) – t0mm13b