Impossible de connecter un slot avec le signale loadFinished
Bonjour à tous,
Je suis débutant sur QT et j'aimerais créer un programme qui convertie du code html en pdf.
Pour ce faire j'utilise QWebPage pour interpréter le code html et QPrinter pour l'export au format PDF.
Alors j'ai deux classes : webview qui se charge d'interpréter tout ce qui est relative à QWebpage et Print qui s'occupe de QPrinter.
Dans mon main, le code ressemble à ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Print *pdf = new Print(args);
webview *nav = new webview();
nav->setPrinter(pdf->getPrinter());
if(nav->load(args) == false) {
qDebug() << "can't load page";
return 0;
}
//on lie le signal de fin de chargement de page de la webview au slot qui va déclencher l'impression
QObject::connect(nav->getFrame(), SIGNAL(loadFinished(bool)), nav, SLOT(printPDF())); |
et voici la belle erreur que j'ai :
Citation:
QObject::connect: No such slot QObject::printPDF() in ../htmltopdf/main.cpp:43
Voici à quoi ressemble mon webview.h (c'est lui qui contient le slot censé recevoir le signale).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #ifndef WEBVIEW_H
#define WEBVIEW_H
#include <QRegularExpression>
#include <QWebFrame>
#include <QWebPage>
#include <QPrinter>
#include <QDebug>
#include "arguments.h"
class webview : public QObject
{
public:
webview();
~webview();
bool load(Arguments *args);
QWebFrame* getFrame() { return frame;}
void setPrinter(QPrinter *p) { printer = p;}
public slots:
void printPDF();
private:
QWebPage *page;
QWebFrame *frame;
QPrinter *printer;
};
#endif // WEBVIEW_H |
et donc ma méthode print pdf ressemble tout bêtement à cela :
Code:
1 2 3 4 5
| void webview::printPDF()
{
if(printer != 0)
frame->print(printer);
} |