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

Discussion :

Utilisation de QWebView

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Utilisation de QWebView
    Bonjours
    Je programme en C depuis maintenant 3 ans et en C++ depuis 1 ans
    Jusqu’à la semaine dernière je ne m'étais jamais pencher sur l'affiche en mode fenêtre et après avoir regarder toutes les possibilité je me suis orienté vers Qt
    Aujourd'hui je chercher a afficher une page web au seins d'un de mes programme
    Cette page Web peut être actualiser a tout moment il faut donc qu'elle soit lue directement depuis le web
    J'ai donc regarder dans la doc ce que Qt nous proposer et j'ai fini par trouver la classe QWebView
    J'ai donc commencer par ajouter tout bêtement cela dans mon programme pour voir ce que cela donner et j'obtient des erreurs
    Voici donc le code de mon main :
    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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWebKitWidgets\QWebView> 
    //QwebView renvoie une erreur lors de la compilation j'ai donc chercher dans les include et j'ai trouver ce chemin qui fonctionne apparemment
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        QWebView *pageweb ();
            pageweb.load (QUrl("http://localhost/index.html")); //url pour les test qui sera changer par la suite
            pageweb.show();
     
        return a.exec();
    }
    Lorsque je compile j'obtient ces erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    erreur : request for member 'load' in 'pageweb', which is of non-class type 'QWebView*()'
    erreur : request for member 'show' in 'pageweb', which is of non-class type 'QWebView*()'
    Si quelqu'un peut me venir en aide je lui en serais très reconnaissant
    Ps : mon but est actuellement de programmer un Uploader pour un serveur de jeu (je sais il y a du boulot mais j'ai tout mon temps *quoi que ...*)
    Je ne sais pas si il y a un endroit sur le forum pour demander de l'aide sur des projets comme celui la
    Juste pour éviter d'avoir 15000 topic de demande d'aide au final puisqu'il risque d'y en avoir
    D'avance merci

    Edit : Si quelqu'un a un lien vers un tuto de préférence en français qui explique l'utilisation du système de design intégré dans QtCreator je suis preneur car pour l'instant a part placer un bouton et editer ses signaux et slots je ne sais pas m'en servir

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    L'erreur est pourtant limpide, et c'est une erreur de C/C++ de base, je pense que tu vas t'en sortir

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    >< on dit toujours qu'un feignant a toujours deux fois plus de travail ...
    Je confirme en regardant un peu a tête reposée j'ai aperçu les parenthèses après le pageweb ... problème régler sur ce point
    Ce qui donne maintenant ca :
    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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWebKitWidgets\QWebView> 
    //QwebView renvoie une erreur lors de la compilation j'ai donc chercher dans les include et j'ai trouver ce chemin qui fonctionne apparemment
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        QWebView *pageweb;
            pageweb->load (QUrl url"http://localhost/index.html");//ligne modifiée d'après la doc
            pageweb->show();
     
        return a.exec();
    }
    Cette fois j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    erreur : 'url' was not declared in this scope

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 431
    Points : 43 057
    Points
    43 057
    Par défaut prob avec url
    Il te manque une parenthèse juste après url je pense.N'oublie pas de la refermer
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par Paramore80 Voir le message
    >< on dit toujours qu'un feignant a toujours deux fois plus de travail ...
    Je confirme en regardant un peu a tête reposée j'ai aperçu les parenthèses après le pageweb ... problème régler sur ce point
    Ouhlala, pas du tout... Faut revoir les bases alors. Les parenthèses (qui ne servent à rien vu qu'il n'y a pas d'argument) marquent l'appel au constructeur.
    Le problème était que tu déclares un pointeur sur QWebView, non alloué en plus, et que tu tentes de l'utiliser comme un objet (et maintenant, comme un pointeur non alloué => plantage assuré).

    Donc reviens à ton premier code, y'a qu'une * à virer pour déclarer un objet QWebView, le reste est ok (la QUrl est créée sans nom car tu ne t'en sers pas après).

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Déjà essayer d'enlever le * depuis longtemps mais cela ne change rien ...
    dans la doc on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QWebView *view = new QWebView(parent);
         view->load(QUrl("http://qt.nokia.com/"));
         view->show();
    code qui lui même ne fonctionne pas
    Lorsque je vire simplement le * j'obtient les mêmes erreurs que sur mon premier post ...

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    Par défaut
    Citation Envoyé par Paramore80 Voir le message
    Lorsque je vire simplement le * j'obtient les mêmes erreurs que sur mon premier post ...
    C'est normal : une chose qui est héritée du C, c'est que "x->" est équivalent à "(*x).". Si tu vires l'astérisque, il faut remplacer les flèches par des points.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Déjà fait en même temps que j'ai enlever le *

  9. #9
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Citation Envoyé par Paramore80 Voir le message
    Déjà essayer d'enlever le * depuis longtemps mais cela ne change rien ...
    dans la doc on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QWebView *view = new QWebView(parent);
         view->load(QUrl("http://qt.nokia.com/"));
         view->show();
    code qui lui même ne fonctionne pas
    Lorsque je vire simplement le * j'obtient les mêmes erreurs que sur mon premier post ...
    Non mais les erreurs de ton premier post c'était juste des erreurs de C++ (une faute de frappe), ça ne compte pas.
    Le code fourni fonctionne évidemment. Pas tiré de son contexte bien sûr (là, tu n'as pas de parent, tu n'as pas besoin d'allouer dynamiquement mais tu peux le faire si ça te chante...).

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    on va reprendre du début donc Voici les codes et les erreurs qu'ils me donnent :
    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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWebKitWidgets\QWebView> 
    //QwebView renvoie une erreur lors de la compilation j'ai donc chercher dans les include et j'ai trouver ce chemin qui fonctionne apparemment
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        QWebView *pageweb ();
            pageweb->load (QUrl("http://localhost/index.html")); //url pour les test qui sera changer par la suite
            pageweb->show();
     
        return a.exec();
    }
    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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWebKitWidgets\QWebView> 
    //QwebView renvoie une erreur lors de la compilation j'ai donc chercher dans les include et j'ai trouver ce chemin qui fonctionne apparemment
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        QWebView pageweb ();
            pageweb.load (QUrl("http://localhost/index.html")); //url pour les test qui sera changer par la suite
            pageweb.show();
     
        return a.exec();
    }
    Ces deux code me retournent sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    erreur : request for member 'load' in 'pageweb', which is of non-class type 'QWebView*()'
    erreur : request for member 'show' in 'pageweb', which is of non-class type 'QWebView*()'
    et la je coince
    PS je ne sais pas si l'erreur dont tu parler au 1er post était le problème des . a la place des -> mais ceci et venu lorsque justement j'ai essayer le code sans le *
    lorsque j'ai fait le copier coller sur le forum je n'y ai pas prêté attention mais j'avais bien -> dans Qtcreator

    Au point ou on en est si quelqu'un a une idée de script qui pourrais marcher je suis preneur ... le temps que je passe la dessus je ne le passe pas sur la suit qui est beaucoup plus simple pour moi puisque je maîtrise beaucoup mieux une fois sorti de Qt

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    QWebView pageweb (); ou QWebView *pageweb (); sont des déclarations de fonctions et non d'instances de classe : il faut retirer les parenthèses finales.

    De plus lorsque tu utilises un pointeur, il faut l'initialiser avec new avant de l'utiliser (cela fait parti des bases C++).

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    c'est donc bien ce que j'ai dit post 3 donc qui a été contredit au post 5 ...

  13. #13
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Effectivement mea culpa, si on met des parenthèses sans paramètre, on ne fait pas appel au constructeur par défaut mais on déclare une fonction, donc c'était aussi une erreur aussi grosse que l'*.
    http://cpp.developpez.com/faq/cpp/?p..._list_list_fct
    Je fais cette erreur car je ne l'utilise pas, mais je le fais dans les listes d'initialisation.
    http://cpp.developpez.com/faq/cpp/?p...EUR_liste_init

    Bref de toute façon tu n'as toujours que deux façons de déclarer ton QWebView, soit allocation automatique, soit dynamique, et donc est-ce que tu vois un intérêt à la faire dynamiquement dans ton main d'essai ? Moi je n'en vois pas, au contraire.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    L'allocation dynamique n'a pas d’intérêt effectivement mais la question n'est pas la
    Le soucis c'est la fameuse erreur que j'obtient et la je ne comprend vraiment pas
    Si quelqu'un a une solution je suis preneur la j'ai un peu l'impression de tourner en rond ...

  15. #15
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Quelle erreur, avec quel code ? Je ne suis plus.

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    oups petit oubli de ma part :
    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
    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWebKitWidgets\QWebView>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        QWebView pageweb;
            pageweb.load (QUrl("http://localhost/index.html"));
            pageweb.show();
     
        return a.exec();
    }
    cette fois j'obtient ces erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    erreur : undefined reference to '_imp___ZN8QWebViewC1EP7QWidget'
    erreur : undefined reference to '_imp___ZN8QWebView4loadERK4QUrl'
    erreur : undefined reference to '_imp___ZN8QWebViewD1Ev'
    erreur : undefined reference to '_imp___ZN8QWebViewD1Ev'

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Problème résolu
    il faut ajouter webkitwidgets dans le fichier .pro
    merci a tout ceux qui m'ont aider
    Maintenant il ne me reste plus qu'a faire ce ci avec le système de design de Qt

  18. #18
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Ok donc là c'est une question Qt.
    Il te manque le module "webkitwidgets" dans le .pro (Qt +=...).

    Edit : Ouhla, bien vu alors, je testais en rédigeant mon post et tu as trouvé avant C'est un nouveau module de Qt5.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    J'étais donc bien parti au départ mais ne comprenant pas pourquoi j'obtenais ces erreur j'ai commencer a aller chercher dans la doc et c'est la que ca a commencer a m'embrouiller les idée enfin merci a tous pour votre aide j'aurais appris quelque chose aujourd'hui
    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Qt WebKit] [QWebView] Utilisation de Google Maps
    Par Washco dans le forum Moteurs Web
    Réponses: 0
    Dernier message: 19/10/2013, 14h15
  2. Réponses: 2
    Dernier message: 04/02/2013, 18h16
  3. [Qt WebKit] Utilisation de QWebView *createWindow(QWebPage::Type Type)
    Par umbra3 dans le forum Moteurs Web
    Réponses: 3
    Dernier message: 12/10/2009, 09h45
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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