IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs Web Discussion :

runJavaScript() et fonction lambda qui plante


Sujet :

Moteurs Web

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 12
    Points
    12
    Par défaut runJavaScript() et fonction lambda qui plante
    Bonjour,

    Voici mon problème en quelques mots : je souhaite extraire certaines informations contenues dans un QWebEngineView. Pour cela j'utilise la fonction "void QWebEnginePage::runJavaScript(const QString & scriptSource, FunctorOrLambda resultCallback)".

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        QString str;    
     
        QString code = "$('span[class=\"tt_r26 j_entities\"]').text();";
        view->page()->runJavaScript(code, [&](const QVariant &var) {str = var.toString(); qDebug() << "1 - " << str});
     
        qDebug() << "2 - " << str;
    Je rencontre deux problèmes :
    - Premièrement lorsque j'exécute ce code mon application plante ("Le programme s'est terminé subitement.")
    - Deuxièmement si mon code fonctionnait ma fonction lambda serait exécutée en dernier. Plus clairement au niveau de la sortie j'aurais cela d’affiché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2 - 
    1 - Contenu de ma chaine
    Comment puis-je résoudre ces deux problèmes ?

    Merci d'avance de votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Je viens de résoudre mes deux problèmes de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        QString str;
        QEventLoop loop;
     
        QString code = "$('span[class=\"tt_r26 j_entities\"]').text();";
        view->page()->runJavaScript(code, [&](const QVariant &var) {
               str = var.toString();
               qDebug() << "1 - " << str ;
               loop.quit();
        });
     
        loop.exec();
        qDebug() << "2 - " << str;
    Je doute que ce soit la meilleure solution. De plus je ne comprends pas pourquoi mon application plante avec le code de mon premier message sur Le forum Qt.

Discussions similaires

  1. [WD14] Fonction EmailLitPremier qui plante.
    Par taipan666 dans le forum WinDev
    Réponses: 9
    Dernier message: 06/12/2010, 20h43
  2. [GD] fonction createimagefromjpeg qui plante mon site
    Par dimainfo dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 13/07/2010, 13h10
  3. fonction qui plante
    Par étoile de mer dans le forum Débuter
    Réponses: 3
    Dernier message: 19/09/2008, 09h42
  4. fonction qui plante mon programme
    Par étoile de mer dans le forum Débuter
    Réponses: 21
    Dernier message: 22/08/2008, 15h08
  5. [Upload] Upload qui plante en fonction de la taille
    Par jeyce dans le forum Langage
    Réponses: 5
    Dernier message: 10/07/2006, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo