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
27void 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








Répondre avec citation
Partager