Bonjour à tous.
J'ai crée un petit navigateur pour m'entrainer, avec un QMdiArea pour gérer les onglets.
Toutefois, je rencontre un problème lors de la création de la barre de chargement.
Voilà mon code, plus explicite que des mots :
Voilà, j'établis une connexion entre le loadProgress du QWebView renvoyé par ma fonction pageWebActuelle et mon slot personnalisé progres().
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 QObject::connect(pageWebActuelle(), SIGNAL(loadProgress(int)), this, SLOT(progres(int))); [...] QWebView *fenetrePrincipale::pageWebActuelle() { return zoneCentrale->activeSubWindow()->findChild<QWebView *>(); } [...] void fenetrePrincipale::progres(int pourcentage) { progression->setValue(pourcentage); }
Toutefois, cela ne fait rien du tout, aucune connexion ne se fait (j'ai fait un signal loadStarted et loadFinished qui font apparaitre et disparaitre la barre de chargement mais je ne vois pas l'intérêt de le mettre ici).
Toutefois ce code marche très bien :
Je déclare directement mon QWebView onglet dans le constructeur de ma fenêtre, et je l'envoi au connect.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 QWebView *onglet=new QWebView; onglet->load(QUrl("http://www.google.fr")); QMdiSubWindow *fenetre=zoneCentrale->addSubWindow(onglet); fenetre->show(); [...] QObject::connect(onglet, SIGNAL(loadProgress(int)), this, SLOT(progres(int)));
Ce que je comprend pas, c'est pourquoi le fait d'indiquer au connect un return d'une fonction ne marche pas.
Si vous pouviez m'aider, cela m'éviterait de m'arracher les derniers cheveux qu'il me reste sur la tête...
Merci, et bonne soirée.
Partager