Bonjour,
Travaillant avec Qt 12.6, je souhaite ouvrir une page web et convertir son contenu en texte brut (plain text); le code actuel est le suivant :
En-tête :
et l'implémentation :
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 class Serveur : public QObject { Q_OBJECT QWebEngineView *view; public: Serveur() {} ~Serveur(){} void Telecharger_page_web(QUrl const&); protected slots: void Handle_html(QString const&); signals: void Go_html(QString const&); };
Récupérer la page web avec QWebEngineView ne pose pas de problème (view->show() affiche le contenu de la requête dans une fenêtre), mais l'étape d'après, la conversion en texte brut, ne me retourne qu'une chaîne vide (qDebug() << text)...
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 void Serveur::Telecharger_page_web(const QUrl & url) { QNetworkAccessManager *manager = new QNetworkAccessManager; QNetworkReply *reply = manager->get(QNetworkRequest(url)); QEventLoop loop; connect(manager, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit); loop.exec(); view = new QWebEngineView(); view->load(reply->url()); view->show(); QWebEnginePage *page = new QWebEnginePage(view->page()); page->toPlainText([this](const QString& result) mutable {emit Go_html(result);}); connect(this, SIGNAL(Go_html(QString const&)), this, SLOT(Handle_html(QString const&))); delete reply; } void Serveur::Handle_html(QString const& text) { qDebug()<< "mon texte : "<< text; }
La documentation n'est pas très disert sur le sujet et je n'ai rient trouvé de convaincant sur les forums. Du coup je bloque... toute idée est la bienvenue.
Bonne journée
Partager