PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Qprocess ? warum wieder nicht ????



Mat
09-10-2005, 21:32
ich schaffe es einfach nicht in einer neuen Klasse den QProcess zu initialisieren:
woran liegt mein fehler ???
also der aufruf in cpp:


#include "generate.h"
#include <qprocess.h>

Generate::GenerateTCL()
{
start();
}
.
.
.
void Generate::start()
{
QProcess process = new QProcess(this);
process.addArgument("irgendwas");
process.start();
}


im Header:


#ifndef GENERATE_H
#define GENERATE_H

#include <qmap.h>

class Generate
{

public:
Generate();
~Generate();

//Methods

private:

//QProcess* process;

//Methods
void start_NS();
};

#endif


mein


generate.cpp: In member function `void Generate::start()':
generate.cpp:151: error: no matching function for call to `QProcess:: QProcess(MainWindow&)'
/usr/include/qt3/qprocess.h:168: error: candidates are: QProcess::QProcess(const QProcess&)
/usr/include/qt3/qprocess.h:59: error: QProcess::QProcess(const QStringList&, QObject*, const char*)
/usr/include/qt3/qprocess.h:58: error: QProcess::QProcess(const QString&, QObject*, const char*)
/usr/include/qt3/qprocess.h:57: error: QProcess::QProcess(QObject*, const char*)

Kirsche
10-10-2005, 09:29
Hallo Mat,

du hast "QProcess process = new QProcess(this);" geschrieben. QProcess sollte aber ein Zeiger sein, da du mit "new" arbeitest. Du brauchst also "QProcess* process = new QProcess(this); ( so wie es im Header steht ).

Schöne Grüße,

Mat
11-10-2005, 19:29
hmm auch mit dem zeiger gehts nicht.
habe jetzt QProcess* process = new QProcess(this);

hier die Meldung:


error: no matching function for call to `QProcess:: QProcess(Generate* const)'
/usr/include/qt3/qprocess.h:168: error: candidates are: QProcess::QProcess(const QProcess&)
/usr/include/qt3/qprocess.h:59: error: QProcess::QProcess(const QStringList&, QObject*, const char*)
/usr/include/qt3/qprocess.h:58: error: QProcess::QProcess(const QString&, QObject*, const char*)
/usr/include/qt3/qprocess.h:57: error: QProcess::QProcess(QObject*, const char*)



ahhhhhhhh
so jetzt hab ichs.......also so wie oben mit this gehts net weil der konstruktor meiner klasse keine argumente hat..........
ist es dann gut das so zu machen:


QProcess* process = new QProcess(0,0);


???
immerhin gehts so.

anda_skoa
12-10-2005, 13:11
so jetzt hab ichs.......also so wie oben mit this gehts net weil der konstruktor meiner klasse keine argumente hat..........

Nein, weil deine Klasse keine QObject Subklasse ist.



ist es dann gut das so zu machen:


QProcess* process = new QProcess(0,0);



Das ist kein Problem solange du dann auch irgendwo


delete process;

hast

Du könntest den QProcess auch direkt zu einem Member deiner Klasse machen



class Genertate
{
//...
private:
QProcess process;
};


Ciao,
_