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 :
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&);
 
};
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
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;

}
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)...

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