Abrir un navegador externo de QWebView
Pregunta
Tengo una "página de inicio" en mi solicitud de que es sólo un widget QWebView
que descarga una página de mi servidor.
Cuando el usuario hace clic en un enlace que me gustaría que se abra en su navegador por defecto, no en el widget.
¿Hay una manera de hacer esto con QWebView
? O debería adoptar un enfoque diferente?
Solución
Sólo tiene que llamar QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks) y luego conectar la señal de QWebView :: LinkClicked (const qurl y url) a una ranura, y en la ranura de ejecutar el navegador. Averiguar lo que es el navegador por defecto, es un poco más complicado y depende de qué escritorio el usuario está ejecutando. La variable de entorno NAVEGADOR a menudo contiene el valor por defecto.
QDesktopServices :: OpenUrl [según lo sugerido por gnud en un comentario]
Otros consejos
Suponiendo que los enlaces son externos, sólo puede llamar QWebView :: setOpenExternalLinks (verdadero) en el widget QWebView. La propiedad es false por defecto; estableciéndolo en verdad hace que los enlaces externos para abrir en su navegador web por defecto.