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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top