Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt > Débuter
Débuter Forum d'entraide pour débuter avec la bibliothèque Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/02/2013, 04h02   #1
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 12h04   #2
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
L'erreur est pourtant limpide, et c'est une erreur de C/C++ de base, je pense que tu vas t'en sortir
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2013, 23h38   #3
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
>< 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
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 07h43   #4
chrtophe
Membre expérimenté
 
Homme
Technicien maintenance
Inscription : août 2011
Messages : 456
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 : 456
Points : 523
Points : 523
Par défaut prob avec url

Il te manque une parenthèse juste après url je pense.N'oublie pas de la refermer
chrtophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 10h15   #5
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
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).
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 26/02/2013, 21h09   #6
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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 ...
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 21h34   #7
dourouc05
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 18 577
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 : 18 577
Points : 74 137
Points : 74 137
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
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.

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 23h16   #8
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
Déjà fait en même temps que j'ai enlever le *
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 00h26   #9
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
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...).
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 00h37   #10
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 01h00   #11
Winjerome
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 5 167
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 25
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations forums :
Inscription : septembre 2009
Messages : 5 167
Points : 12 622
Points : 12 622
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++).
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 01h19   #12
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
c'est donc bien ce que j'ai dit post 3 donc qui a été contredit au post 5 ...
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 11h26   #13
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
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.
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 18h05   #14
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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 ...
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 18h09   #15
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
Quelle erreur, avec quel code ? Je ne suis plus.
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 18h26   #16
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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'
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 18h52   #17
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 19h02   #18
Troudhyl
Modérateur
 
Homme
Ingénieur développement logiciels
Inscription : mai 2009
Messages : 965
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : France

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

Informations forums :
Inscription : mai 2009
Messages : 965
Points : 1 689
Points : 1 689
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.
Troudhyl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/02/2013, 19h52   #19
Paramore80
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 1
Points : 1
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
Paramore80 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h52.


 
 
 
 
Partenaires

Hébergement Web