Call QProcess without GUI
Hi, what what should i write into the connect function to call the slot updateError() that is into the CallApplication class?
The connect function in not declared in this scope but i dont need that the callApplication.h derive by QMainWindow or something like that. Is there a work around?
i want just to call a extern process without any GUI.
callApplication.h
Code:
#include <QProcess>
class CallApplication
{
public:
CallApplication();
~CallApplication();
void performApplication();
private slots:
void updateError();
void processFinished
(int exitCode,
QProcess::ExitStatus exitStatus
);
void processError
(QProcess::ProcessError error
);
public:
};
callApplication.cpp
Code:
#include <callApplication.h>
CallApplication::CallApplication()
{
connect(&process, SIGNAL(readyReadStandardError()), /*CallApplication*/, SLOT(updateError())); //<--the reciver is CallApplication
}
CallApplication::~CallApplication(){}
void CallApplication::performApplication()
{
args << "-resize" << "100x100" << "/home/mattia/image1/1.jpg";
process.start("mogrify", args);
}
void CallApplication::updateError(){}
void CallApplication
::processFinished(int exitCode,
QProcess::ExitStatus exitStatus
) {
}
void CallApplication
::processError(QProcess::ProcessError error
) {
}
Re: Call QProcess without GUI
Re: Call QProcess without GUI
Do you mean in this way?
Code:
connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(updateError()));
I get this error: connect was not declered in this scope
Re: Call QProcess without GUI
Try this:
Code:
QObject::connect(&process,
SIGNAL(readyReadStandardError
()),
this,
SLOT(updateError
()));
Re: Call QProcess without GUI
now i get the access at the connect function but something still wrong, i get this error:
no matching function for call to ‘QObject::connect(QProcess*, const char [26], CallApplication* const, const char [15])’
Re: Call QProcess without GUI
CallApplication doesn't inherit QObject and it lacks Q_OBJECT macro --- without this signals & slots mechanism won't work.
Re: Call QProcess without GUI
So, have i to declare the .h class in this way?
Code:
#include <QProcess>
class CallApplication
: public QObject {
Q_OBJECT
public:
CallApplication();
~CallApplication();
void performApplication();
private slots:
void updateError();
void processFinished
(int exitCode,
QProcess::ExitStatus exitStatus
);
void processError
(QProcess::ProcessError error
);
public:
};
Re: Call QProcess without GUI
Quote:
Originally Posted by
mattia
So, have i to declare the .h class in this way?
Yes, and don't forget to re-run qmake.
Re: Call QProcess without GUI
Done! Now it's working. Thanks so much.