Seite 1 von 1

QProcess von Qt3 nach Qt4

Verfasst: 7. Juli 2006 19:11
von imbiss
Hallo zusammen.

Mit Qt3 konnte ich mir die ausgabe von fdisk -l in einem TextBrowser anzeigen lassen.
Ich habe jetzt Qt4 installiert und es klappt nicht mehr, habe in der Doku gelesen, komme aber nicht weiter.

code qt3
QString temp2 = textBrofdisk->text();
QProcess *process = new QProcess(this);
process->addArgument("fdisk");
process->addArgument("-l");
process->addArgument("/dev/hda");
process->addArgument(temp2);
process->start();
QByteArray data = process->readStdout();
QString text = textBrofdisk->text() + QString(data);
textEditfdisk->setText(text);

code Qt4
QTextEdit* textEditfdisk2 = new QTextEdit(fenster3);
textEditfdisk2->setReadOnly(TRUE);
QString program = "fdisk";
QStringList arguments ;
arguments << "-l" << "/dev/hda";
QProcess *myProcess = new QProcess(fenster3);
myProcess->start(program);
QString text=myProcess->readAllStandardOutput();
QByteArray data = myProcess->readAllStandardOutput();
QString text = textEditfdisk2->text() + QString(data);
textEditfdisk2->setPlainText(text);

mfg

Verfasst: 7. Juli 2006 21:12
von Christian81
Was geht denn nicht?
Ich würde auf das Signal processExited warten bevor ich versuche aus Stdout was zu lesen.
Den exitStatus und exitCode würde ich auch davor überprüfen.

Verfasst: 7. Juli 2006 23:29
von imbiss
ich möchte mir eine Konsolen ausgabe in einem Textedit anzeigen lassen.Ein Programm starten funktioniert aber nicht die Anzeige im Textedit

mfg

Verfasst: 7. Juli 2006 23:36
von ChMaster
servus,

hier ein kleine bsp. mit qprocess von qt4 bzw. für qt4 bzw mit qt4 ;)

Code: Alles auswählen

QStringList args;
QString file, workDir;

workDir = QCoreApplication::applicationDirPath();
file = QCoreApplication::applicationDirPath();
file.append( "/txt.txt" )

QProcess *p = new QProcess(this);

args.append( "tuwasdunichtlassenkannst" );

p->setWorkingDirectory( workDir  );
p->start( file, args );

while ( p->waitForFinished() ) {
    QString output = p->readAll();
}

workDir = "";
file = "";
args.clear();
delete p; 
nun kannst du den inhalt von output in eine datei schreiben oder in einem
QLabel.

Verfasst: 8. Juli 2006 01:07
von imbiss
:D Vielen Dank für den Code schnipzel, es funktioniert.