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 :
et voici la belle erreur que j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()));
Voici à quoi ressemble mon webview.h (c'est lui qui contient le slot censé recevoir le signale).QObject::connect: No such slot QObject::printPDF() in ../htmltopdf/main.cpp:43
et donc ma méthode print pdf ressemble tout bêtement à cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void webview::printPDF() { if(printer != 0) frame->print(printer); }
Partager