Navegador exteriores abertas a partir QWebView
Pergunta
Eu tenho "página inicial" A minha aplicação que é apenas um widget QWebView
que transfere uma página do meu servidor.
Quando o usuário clica em um link que eu gostaria que ele abra em seu navegador padrão, não no widget.
Existe uma maneira de fazer isso com QWebView
? Ou eu deveria ter uma abordagem diferente?
Solução
Apenas chamada QWebPage :: setLinkDelegationPolicy (QWebPage :: DelegateAllLinks), em seguida, conecte o QWebView sinal :: LinkClicked (const qurl & url) para um slot, e no slot executar o browser. Descobrir o que é o navegador padrão, é um pouco mais complicado e depende de qual área de trabalho do usuário está executando. O navegador variável de ambiente muitas vezes contém o padrão.
Ou use QDesktopServices :: OpenURL [como sugerido por gnud em um comentário]
Outras dicas
Assumindo que as ligações são externos, você pode apenas chamar QWebView :: setOpenExternalLinks (true) em seu widget QWebView. A propriedade é falso por padrão; definindo-o como verdadeiras causas ligações externas para abrir em seu navegador padrão.