Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 19 sur 19
  1. #1
    Invité de passage
    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 : 0
    Points
    0

    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 :
    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 :
    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
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    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
    Invité de passage
    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 : 0
    Points
    0

    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 :
    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 :
    erreur : 'url' was not declared in this scope

  4. #4
    Expert Confirmé

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 2 127
    Points : 2 888
    Points
    2 888

    Par défaut prob avec url

    Il te manque une parenthèse juste après url je pense.N'oublie pas de la refermer

  5. #5
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    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
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    Déjà essayer d'enlever le * depuis longtemps mais cela ne change rien ...
    dans la doc on a :
    Code :
    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

    Avatar de dourouc05
    Homme Profil pro Thibaut Cuvelier
    Étudiant
    Inscrit en
    août 2008
    Messages
    19 393
    Détails du profil
    Informations personnelles :
    Nom : Homme Thibaut Cuvelier
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 19 393
    Points : 70 367
    Points
    70 367

    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 ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #8
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    Déjà fait en même temps que j'ai enlever le *

  9. #9
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    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 :
    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
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    on va reprendre du début donc Voici les codes et les erreurs qu'ils me donnent :
    Code :
    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 :
    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 :
    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
    Responsable FAQ C++
    Avatar de Winjerome
    Homme Profil pro Jérôme
    Inscrit en
    septembre 2009
    Messages
    7 653
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme
    Âge : 27
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : septembre 2009
    Messages : 7 653
    Points : 26 143
    Points
    26 143

    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
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    c'est donc bien ce que j'ai dit post 3 donc qui a été contredit au post 5 ...

  13. #13
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    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
    Invité de passage
    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 : 0
    Points
    0

    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
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    Par défaut

    Quelle erreur, avec quel code ? Je ne suis plus.

  16. #16
    Invité de passage
    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 : 0
    Points
    0

    Par défaut

    oups petit oubli de ma part :
    Code :
    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 :
    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
    Invité de passage
    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 : 0
    Points
    0

    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
    Modérateur

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

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

    Informations forums :
    Inscription : mai 2009
    Messages : 1 007
    Points : 1 537
    Points
    1 537

    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
    Invité de passage
    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 : 0
    Points
    0

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •