Ouvrez le navigateur externe de QWebView
Question
J'ai un « start page » sur ma demande qui est juste un widget QWebView
qui télécharge une page de mon serveur.
Lorsque l'utilisateur clique sur un lien que je voudrais pour ouvrir dans leur navigateur par défaut, pas dans le widget.
Est-il possible de le faire avec QWebView
? Ou devrais-je prendre une approche différente?
La solution
Il suffit d'appeler QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks) puis connectez le signal QWebView :: LinkClicked (const qurl & url) à une fente, et dans la fente exécuter le navigateur. Trouver ce que le navigateur par défaut est, est un peu plus complexe et dépend du bureau de l'utilisateur est en cours d'exécution. La variable d'environnement NAVIGATEUR contient souvent la valeur par défaut.
Ou utilisez QDesktopServices :: openURL [comme suggéré par GNUD dans un commentaire]
Autres conseils
En supposant que les liens sont externes, vous pouvez simplement appeler QWebView :: setOpenExternalLinks (true) sur votre widget QWebView. La propriété est faux par défaut; la mise à true, les liens externes à ouvrir dans votre navigateur Web par défaut.