[gelöst] QProcess Problem

Alles rund um die Programmierung mit Qt
Antworten
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

[gelöst] QProcess Problem

Beitrag von archon »

Hallo,

wie so oft komm ich einfach nicht weiter.

Folgendes Problem:
Ich möchte über einen FileDialog im MainProg eine Datei auswählen und dann in wordpad aufrufen. Das MainProg und Wordpad sollen separat laufen und sich nicht weiter behindern.

Ich habs mal mit folgendem Code probiert:

Code: Alles auswählen

        QString s = QFileDialog::getOpenFileName(
	    "/home",
	    "Config (*.conf)",
	    this,
	    "open file dialog"
	    "Choose a file" );
    
        QProcess *proc = new QProcess( this );

        proc->addArgument( "wordpad.exe" );
        proc->addArgument( s );
        proc->start();

Der Filedialog funzt aber die Anwendung startet nicht.
(wordpad (write.exe) ist im prog ordner)

Weiss jemand Rat?
Zuletzt geändert von archon am 12. September 2006 15:40, insgesamt 1-mal geändert.
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

versuchs mal damit :)

Code: Alles auswählen

       QStringList m_param;

        QString s = QFileDialog::getOpenFileName(
       "/home",
       "Config (*.conf)",
       this,
       "open file dialog"
       "Choose a file" );

       QProcess *proc = new QProcess( this );
       m_param.append( s );       
       proc->start( "wordpad.exe", m_param );
       /*
           oder so:
           proc->start( "wordpad.exe", QStringList() << s );
       */
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

Das einzigste was passiert wenn ich letzteres verwende ist das neben dem Mauspfeil die Sanduhr kommt die auch bleibt.
Wenn ich in den Taskmanager schau öffnet sich wordpad immer und immer wieder. Ich kann den Prozess nicht so schnell beenden wie sich wp öffnet... (Ich verwende qt3)

?!?
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

archon hat geschrieben: ....

(Ich verwende qt3)
?!?
warum noch Qt3? Qt4 ist OS und ist auch für windows vorhanden und um
einiges besser als qt3 :)
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

das system besteht bereits... ein portieren auf qt4 wäre zu aufwendig. qt3 tuts auch
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Er meinte damit etwa folgendes:

Alle Anwendungen die mit dem Einzug von KDE4 nicht Qt4 sind werden früher oder später, ehr früher nicht mehr verwendet, weil KDE eigentlich immer die Qt Version vorgibt. Unter Windows kann das etwas anderes sein, aber ich denke mit Vista oder nächsten Systemen gibt es da bestimmt auch Probleme.

Ich kann auch Qt3 nutzen, aber nach 2 Jahren Qt4 ist es noch einfacher Anwendungen zu schreiben und ich habe vollständig allen Code auf Qt4 portiert, bzw. wird das noch passieren, wo es nicht vollständig fertig ist.
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

hmm...wär eine überlegung wert...ich werde es mal bei der nächsten besprechung in die runde schmeissen.
Die Anwendung wird gerade unter windows programmiert...du meinst also das selbst die kompilierte qt3 anwendung dann nicht unter dem neuerem kde läuft? Man könnte ja um die linux version zu portieren auch ein älteren kde verwenden?
archon
Beiträge: 117
Registriert: 22. August 2006 12:01

Beitrag von archon »

So klappts jetzt unter qt3.2.1

Code: Alles auswählen

 QString s = QFileDialog::getOpenFileName( 
       "/gui", 
       "Config (*.txt)", 
       this, 
       "open file dialog" 
       "Choose a file" ); 

       QProcess *proc = new QProcess( this ); 
       proc->addArgument( "write" );
       proc->addArgument(s);
       
       if ( !proc->start() ) logTextBrowser->append("cound not start editor");
Idiotensicher!
Antworten