Ich kämpfe hier den ganzen Nachmittag mit einem ganz merkwürdigem Problem in Verbindung mit QProcess.
Prinzipiell funktioniert es, wenn ich jedoch bestimmte Parameter dem Prozess übermittle, dann wird das externe Programm fehlerhaft gestartet.
OK. Konkret zum Code und Problem: Ich möchte im Prinzip spumux aus meiner Anwendung starten. Folgender Code:
Code: Alles auswählen
QString program = "spumux";
QStringList arguments;
arguments << "menu1-spumux.xml" << "< menu1-background.mpg >" << "menu1-final.mpg";
mSpumux->start(program, arguments);
Code: Alles auswählen
mSpumux = new QProcess(this);
Wenn ich jetzt meine App starte, dann sehe (entsprechende Signale fange ich ab, z.B. readyReadStandardOutput()) ich dass spumux wirklich gestartet wird. Aber die Argumente, welche ich diesem Prozess übermittelte, werden nicht vernünftig verwendet. Jedenfalls gibt spumux Fehlermeldungen aus. Starte ich hingegen spumux auf der Konsole mit eben genau diesen Parametern, dann sehe ich dass es funktioniert.
Nun dachte ich mir ok, dann schreibe ich halt ein Skript, welches im wesentlichen aus dem folgenden Code besteht:
Code: Alles auswählen
#!/bin/sh
spumux $1 < $2 > $3
Was sagt ihr dazu? Hattet ihr mit QProcess ein ähnliches Problem? Oder hat für mich jemand einen Tipp, ich bin mittlerweile ziemlich ratlos. Auch ein benutzen der alten Q3Process-Klasse ergab kein Erfolg.
Liebe Grüße,
Guybrush
PS:
System: Debian Linux 4.0
Qt: 4.2.1