QProcess von Qt3 nach Qt4

Alles rund um die Programmierung mit Qt
Antworten
imbiss
Beiträge: 20
Registriert: 17. Oktober 2005 20:04

QProcess von Qt3 nach Qt4

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
imbiss
Beiträge: 20
Registriert: 17. Oktober 2005 20:04

Beitrag 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
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag 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.
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
imbiss
Beiträge: 20
Registriert: 17. Oktober 2005 20:04

Beitrag von imbiss »

:D Vielen Dank für den Code schnipzel, es funktioniert.
Antworten